The rule type is AllowedValues.
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import sailpoint.object.Filter;
import sailpoint.object.Identity;
import sailpoint.object.Link;
import sailpoint.object.QueryOptions;
import sailpoint.api.SailPointContext;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
Logger log = Logger.getLogger("sailpoint.rules.FilterActiveRegularADAccounts");
log.setLevel(Level.DEBUG);
log.debug("-----------------------------------");
List identityList = new ArrayList();
QueryOptions qo = new QueryOptions();
qo.addFilter(Filter.ne("inactive",true));
qo.addFilter(Filter.eq("correlated", true));
qo.add(Filter.eq("links.application.name","Active Directory"));
qo.add(Filter.eq("links.accounttype","Regular"));
log.debug("Get list of Identities");
Iterator iterator = context.search(Identity.class,qo);
while(iterator.hasNext()){
Identity identityObject = (Identity) iterator.next();
List linksList = identityObject.getLinks();
Link contractorADLink;
for (Link link : linksList){
if ("Active Directory".equalsIgnoreCase(link.getApplicationName())){
if (null!=link.getBooleanAttribute("IIQDisabled") &&
link.getBooleanAttribute("IIQDisabled")){
//do nothing
} else{
identityList.add(identityObject.getName());
}
}
}
}
Filter finalFilter = Filter.in("name", identityList);
field.setFilterString(finalFilter.toString());
log.debug("-------------------------------------");
}