class NamedOperationDetail implements AccessControlledResource, Serializable {

    public AccessPredicate getWriteAccessPredicate() {
        try {
            return writeAccessPredicateJson != null ? JSONSerialiser.deserialise(writeAccessPredicateJson, AccessPredicate.class) : null;
        } catch (final SerialisationException e) {
            throw new IllegalArgumentException("writeAccessPredicate was not JsonSerialisable", e);
        }
    }

    public  NamedOperationDetail();
    public  NamedOperationDetail(final String operationName, final String description, final String userId,
                                final String operations, final List<String> readers,
                                final List<String> writers, final Map<String, ParameterDetail> parameters,
                                final Integer score);
    public  NamedOperationDetail(final String operationName, final String inputType, final String description, final String userId,
                                final String operations, final List<String> readers,
                                final List<String> writers, final Map<String, ParameterDetail> parameters,
                                final Integer score);
    public  NamedOperationDetail(final String operationName, final List<String> labels, final String inputType, final String description,
                                final String userId, final String operations, final List<String> readers,
                                final List<String> writers, final Map<String, ParameterDetail> parameters,
                                final Integer score);
    public  NamedOperationDetail(final String operationName, final List<String> labels, final String inputType, final String description,
                                final String userId, final String operations, final List<String> readers,
                                final List<String> writers, final Map<String, ParameterDetail> parameters,
                                final Integer score, final AccessPredicate readAccessPredicate, final AccessPredicate writeAccessPredicate);

}