docs: public void marshall(JobDetail jobDetail, ProtocolMarshaller protocolMarshaller) {
  
          if (jobDetail == null) {
              throw new SdkClientException("Invalid argument passed to marshall(...)");
          }
  
          try {
              protocolMarshaller.marshall(jobDetail.getJobName(), JOBNAME_BINDING);
              protocolMarshaller.marshall(jobDetail.getJobId(), JOBID_BINDING);
              protocolMarshaller.marshall(jobDetail.getJobQueue(), JOBQUEUE_BINDING);
              protocolMarshaller.marshall(jobDetail.getStatus(), STATUS_BINDING);
              protocolMarshaller.marshall(jobDetail.getAttempts(), ATTEMPTS_BINDING);
              protocolMarshaller.marshall(jobDetail.getStatusReason(), STATUSREASON_BINDING);
              protocolMarshaller.marshall(jobDetail.getCreatedAt(), CREATEDAT_BINDING);
              protocolMarshaller.marshall(jobDetail.getRetryStrategy(), RETRYSTRATEGY_BINDING);
              protocolMarshaller.marshall(jobDetail.getStartedAt(), STARTEDAT_BINDING);
              protocolMarshaller.marshall(jobDetail.getStoppedAt(), STOPPEDAT_BINDING);
              protocolMarshaller.marshall(jobDetail.getDependsOn(), DEPENDSON_BINDING);
              protocolMarshaller.marshall(jobDetail.getJobDefinition(), JOBDEFINITION_BINDING);
              protocolMarshaller.marshall(jobDetail.getParameters(), PARAMETERS_BINDING);
              protocolMarshaller.marshall(jobDetail.getContainer(), CONTAINER_BINDING);
              protocolMarshaller.marshall(jobDetail.getNodeDetails(), NODEDETAILS_BINDING);
              protocolMarshaller.marshall(jobDetail.getNodeProperties(), NODEPROPERTIES_BINDING);
              protocolMarshaller.marshall(jobDetail.getArrayProperties(), ARRAYPROPERTIES_BINDING);
              protocolMarshaller.marshall(jobDetail.getTimeout(), TIMEOUT_BINDING);
          } catch (Exception e) {
              throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
          }
      }