class ZTSImpl implements KeyStore, ZTSHandler {

    int getConfiguredRoleListExpiryTimeMins(Map<String, String[]> requestedRoleList) {

        int maxAllowedExpiry = 0;
        for (String domainName : requestedRoleList.keySet()) {

            DataCache data = dataStore.getDataCache(domainName);
            if (data == null) {
                continue;
            }

            Set<String> roles = new HashSet<>();
            Collections.addAll(roles, requestedRoleList.get(domainName));
            int domainMaxAllowedExpiry = getConfiguredRoleCertExpiryTimeMins(data, roles);

            // now update our total expiry time only if the value we determined
            // for the given domain is smaller

            if (domainMaxAllowedExpiry > 0 && (maxAllowedExpiry == 0 || domainMaxAllowedExpiry < maxAllowedExpiry)) {
                maxAllowedExpiry = domainMaxAllowedExpiry;
            }
        }

        return maxAllowedExpiry;
    }

    public  ZTSImpl();
    public  ZTSImpl(CloudStore implCloudStore, DataStore implDataStore);

}