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