docs: public void marshall(Job job, ProtocolMarshaller protocolMarshaller) {
  
          if (job == null) {
              throw new SdkClientException("Invalid argument passed to marshall(...)");
          }
  
          try {
              protocolMarshaller.marshall(job.getAccelerationSettings(), ACCELERATIONSETTINGS_BINDING);
              protocolMarshaller.marshall(job.getArn(), ARN_BINDING);
              protocolMarshaller.marshall(job.getBillingTagsSource(), BILLINGTAGSSOURCE_BINDING);
              protocolMarshaller.marshall(job.getCreatedAt(), CREATEDAT_BINDING);
              protocolMarshaller.marshall(job.getCurrentPhase(), CURRENTPHASE_BINDING);
              protocolMarshaller.marshall(job.getErrorCode(), ERRORCODE_BINDING);
              protocolMarshaller.marshall(job.getErrorMessage(), ERRORMESSAGE_BINDING);
              protocolMarshaller.marshall(job.getId(), ID_BINDING);
              protocolMarshaller.marshall(job.getJobPercentComplete(), JOBPERCENTCOMPLETE_BINDING);
              protocolMarshaller.marshall(job.getJobTemplate(), JOBTEMPLATE_BINDING);
              protocolMarshaller.marshall(job.getOutputGroupDetails(), OUTPUTGROUPDETAILS_BINDING);
              protocolMarshaller.marshall(job.getQueue(), QUEUE_BINDING);
              protocolMarshaller.marshall(job.getRetryCount(), RETRYCOUNT_BINDING);
              protocolMarshaller.marshall(job.getRole(), ROLE_BINDING);
              protocolMarshaller.marshall(job.getSettings(), SETTINGS_BINDING);
              protocolMarshaller.marshall(job.getStatus(), STATUS_BINDING);
              protocolMarshaller.marshall(job.getStatusUpdateInterval(), STATUSUPDATEINTERVAL_BINDING);
              protocolMarshaller.marshall(job.getTiming(), TIMING_BINDING);
              protocolMarshaller.marshall(job.getUserMetadata(), USERMETADATA_BINDING);
          } catch (Exception e) {
              throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
          }
      }