docs: public void marshall(AutomationExecution automationExecution, ProtocolMarshaller protocolMarshaller) {
  
          if (automationExecution == null) {
              throw new SdkClientException("Invalid argument passed to marshall(...)");
          }
  
          try {
              protocolMarshaller.marshall(automationExecution.getAutomationExecutionId(), AUTOMATIONEXECUTIONID_BINDING);
              protocolMarshaller.marshall(automationExecution.getDocumentName(), DOCUMENTNAME_BINDING);
              protocolMarshaller.marshall(automationExecution.getDocumentVersion(), DOCUMENTVERSION_BINDING);
              protocolMarshaller.marshall(automationExecution.getExecutionStartTime(), EXECUTIONSTARTTIME_BINDING);
              protocolMarshaller.marshall(automationExecution.getExecutionEndTime(), EXECUTIONENDTIME_BINDING);
              protocolMarshaller.marshall(automationExecution.getAutomationExecutionStatus(), AUTOMATIONEXECUTIONSTATUS_BINDING);
              protocolMarshaller.marshall(automationExecution.getStepExecutions(), STEPEXECUTIONS_BINDING);
              protocolMarshaller.marshall(automationExecution.getStepExecutionsTruncated(), STEPEXECUTIONSTRUNCATED_BINDING);
              protocolMarshaller.marshall(automationExecution.getParameters(), PARAMETERS_BINDING);
              protocolMarshaller.marshall(automationExecution.getOutputs(), OUTPUTS_BINDING);
              protocolMarshaller.marshall(automationExecution.getFailureMessage(), FAILUREMESSAGE_BINDING);
              protocolMarshaller.marshall(automationExecution.getMode(), MODE_BINDING);
              protocolMarshaller.marshall(automationExecution.getParentAutomationExecutionId(), PARENTAUTOMATIONEXECUTIONID_BINDING);
              protocolMarshaller.marshall(automationExecution.getExecutedBy(), EXECUTEDBY_BINDING);
              protocolMarshaller.marshall(automationExecution.getCurrentStepName(), CURRENTSTEPNAME_BINDING);
              protocolMarshaller.marshall(automationExecution.getCurrentAction(), CURRENTACTION_BINDING);
              protocolMarshaller.marshall(automationExecution.getTargetParameterName(), TARGETPARAMETERNAME_BINDING);
              protocolMarshaller.marshall(automationExecution.getTargets(), TARGETS_BINDING);
              protocolMarshaller.marshall(automationExecution.getTargetMaps(), TARGETMAPS_BINDING);
              protocolMarshaller.marshall(automationExecution.getResolvedTargets(), RESOLVEDTARGETS_BINDING);
              protocolMarshaller.marshall(automationExecution.getMaxConcurrency(), MAXCONCURRENCY_BINDING);
              protocolMarshaller.marshall(automationExecution.getMaxErrors(), MAXERRORS_BINDING);
              protocolMarshaller.marshall(automationExecution.getTarget(), TARGET_BINDING);
              protocolMarshaller.marshall(automationExecution.getTargetLocations(), TARGETLOCATIONS_BINDING);
              protocolMarshaller.marshall(automationExecution.getProgressCounters(), PROGRESSCOUNTERS_BINDING);
          } catch (Exception e) {
              throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
          }
      }