+ return switch (value) {
+ case "enabled" -> GroupLinkState.ENABLED;
+ case "enabled-with-approval", "enabledWithApproval" -> GroupLinkState.ENABLED_WITH_APPROVAL;
+ case "disabled" -> GroupLinkState.DISABLED;
+ default -> throw new UserErrorException("Invalid group link state: " + value);
+ };
+ }
+
+ GroupPermission getGroupPermission(String value) throws UserErrorException {
+ if (value == null) {
+ return null;
+ }
+ return switch (value) {
+ case "every-member", "everyMember" -> GroupPermission.EVERY_MEMBER;
+ case "only-admins", "onlyAdmins" -> GroupPermission.ONLY_ADMINS;
+ default -> throw new UserErrorException("Invalid group permission: " + value);
+ };
+ }
+
+ @Override
+ public void handleCommand(
+ final Namespace ns, final Manager m, final OutputWriter outputWriter
+ ) throws CommandException {
+ final var groupIdString = ns.getString("group-id");
+ var groupId = CommandUtil.getGroupId(groupIdString);
+
+ final var localNumber = m.getSelfNumber();