class SDNOValidatorImpl implements SDNOValidator {

    protected SDNO buildRequestDiagnostic(GenericVnf vnf, UUID uuid, String requestingUserId) {

        Optional<String> nfRole;
        if (vnf.getNfRole() == null) {
            nfRole = Optional.empty();
        } else {
            nfRole = Optional.of(vnf.getNfRole());
        }
        Input input = new Input();
        SDNO parentRequest = new SDNO();
        Body body = new Body();
        parentRequest.setBody(body);
        parentRequest.setNodeType(nfRole.orElse("NONE").toUpperCase());
        parentRequest.setOperation("health-diagnostic");

        body.setInput(input);

        RequestHealthDiagnostic request = new RequestHealthDiagnostic();

        request.setRequestClientName(clientName);
        request.setRequestNodeName(vnf.getVnfName());
        request.setRequestNodeUuid(vnf.getVnfId());
        request.setRequestNodeType(nfRole.orElse("NONE").toUpperCase());
        request.setRequestNodeIp(vnf.getIpv4OamAddress()); // generic-vnf oam ip
        request.setRequestUserId(requestingUserId); // mech id?
        request.setRequestId(uuid.toString()); // something to identify this request by for polling
        request.setHealthDiagnosticCode(HEALTH_DIAGNOSTIC_CODE_DEFAULT);

        input.setRequestHealthDiagnostic(request);

        return parentRequest;
    }

}