public static Set<AclOperation> supportedOperations(ResourceType resourceType) {
        switch (resourceType) {
            case TOPIC:
                return new HashSet<>(Arrays.asList(READ, WRITE, CREATE, DESCRIBE, DELETE, ALTER, DESCRIBE_CONFIGS, ALTER_CONFIGS));
            case GROUP:
                return new HashSet<>(Arrays.asList(READ, DESCRIBE, DELETE));
            case CLUSTER:
                return new HashSet<>(Arrays.asList(CREATE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS, IDEMPOTENT_WRITE, ALTER, DESCRIBE));
            case TRANSACTIONAL_ID:
                return new HashSet<>(Arrays.asList(DESCRIBE, WRITE));
            case DELEGATION_TOKEN:
                return Collections.singleton(DESCRIBE);
            case USER:
                return new HashSet<>(Arrays.asList(CREATE_TOKENS, DESCRIBE_TOKENS));
            default:
                throw new IllegalArgumentException("Not a concrete resource type");
        }
    }
Parse JSON representation of ACLs
@param bytes of acls json string

<p>
        {
            "version": 1,
            "acls": [
                {
                    "host":"host1",
                    "permissionType": "Deny",
                    "operation": "Read",
                    "principal": "User:alice"
                }
            ]
        }
</p>

@return set of AclEntry objects from the JSON string
server/src/main/java/org/apache/kafka/security/authorizer/AclEntry.java