private void validate (MapObject aCreateJobParams, Pipeline aPipeline) {
    // validate inputs
    Map<String, Object> inputs = aCreateJobParams.getMap(DSL.INPUTS,Collections.EMPTY_MAP);
    List<Accessor> input = aPipeline.getInputs();
    for(Accessor in : input) {
      if(in.getBoolean(DSL.REQUIRED, false)) {
        Assert.isTrue(inputs.containsKey(in.get(DSL.NAME)), "Missing required param: " + in.get("name"));
      }
    }
    // validate webhooks
    List<Accessor> webhooks = aCreateJobParams.getList(WEBHOOKS, MapObject.class, Collections.EMPTY_LIST);
    for(Accessor webhook : webhooks) {
      Assert.notNull(webhook.getString(DSL.TYPE), "must define 'type' on webhook");
      Assert.notNull(webhook.getString(DSL.URL), "must define 'url' on webhook");
    }
  }
Starts a job instance.

@param aJobParams
         The Key-Value map representing the job
         parameters
@return Job
          The instance of the Job
src/main/java/com/creactiviti/piper/core/Coordinator.java