class ZMSImpl implements Authorizer, KeyStore, ZMSHandler {

    public PolicyList getPolicyList(ResourceContext ctx, String domainName, Integer limit, String skip) {

        final String caller = ctx.getApiName();
        logPrincipal(ctx);

        validateRequest(ctx.request(), caller);
        validate(domainName, TYPE_DOMAIN_NAME, caller);

        // for consistent handling of all requests, we're going to convert
        // all incoming object values into lower case (e.g. domain, role,
        // policy, service, etc name)

        domainName = domainName.toLowerCase();
        setRequestDomain(ctx, domainName);
        if (skip != null) {
            skip = skip.toLowerCase();
        }

        List<String> names = new ArrayList<>();
        String next = processListRequest(domainName, AthenzObject.POLICY, limit, skip, names);
        PolicyList result = new PolicyList().setNames(names);
        if (next != null) {
            result.setNext(next);
        }

        return result;
    }

    public  ZMSImpl();

}