docs: public void marshall(HistoryEvent historyEvent, ProtocolMarshaller protocolMarshaller) {
  
          if (historyEvent == null) {
              throw new SdkClientException("Invalid argument passed to marshall(...)");
          }
  
          try {
              protocolMarshaller.marshall(historyEvent.getEventTimestamp(), EVENTTIMESTAMP_BINDING);
              protocolMarshaller.marshall(historyEvent.getEventType(), EVENTTYPE_BINDING);
              protocolMarshaller.marshall(historyEvent.getEventId(), EVENTID_BINDING);
              protocolMarshaller.marshall(historyEvent.getWorkflowExecutionStartedEventAttributes(), WORKFLOWEXECUTIONSTARTEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getWorkflowExecutionCompletedEventAttributes(), WORKFLOWEXECUTIONCOMPLETEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getCompleteWorkflowExecutionFailedEventAttributes(),
                      COMPLETEWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getWorkflowExecutionFailedEventAttributes(), WORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getFailWorkflowExecutionFailedEventAttributes(), FAILWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getWorkflowExecutionTimedOutEventAttributes(), WORKFLOWEXECUTIONTIMEDOUTEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getWorkflowExecutionCanceledEventAttributes(), WORKFLOWEXECUTIONCANCELEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getCancelWorkflowExecutionFailedEventAttributes(), CANCELWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getWorkflowExecutionContinuedAsNewEventAttributes(),
                      WORKFLOWEXECUTIONCONTINUEDASNEWEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getContinueAsNewWorkflowExecutionFailedEventAttributes(),
                      CONTINUEASNEWWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getWorkflowExecutionTerminatedEventAttributes(), WORKFLOWEXECUTIONTERMINATEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getWorkflowExecutionCancelRequestedEventAttributes(),
                      WORKFLOWEXECUTIONCANCELREQUESTEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getDecisionTaskScheduledEventAttributes(), DECISIONTASKSCHEDULEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getDecisionTaskStartedEventAttributes(), DECISIONTASKSTARTEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getDecisionTaskCompletedEventAttributes(), DECISIONTASKCOMPLETEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getDecisionTaskTimedOutEventAttributes(), DECISIONTASKTIMEDOUTEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getActivityTaskScheduledEventAttributes(), ACTIVITYTASKSCHEDULEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getActivityTaskStartedEventAttributes(), ACTIVITYTASKSTARTEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getActivityTaskCompletedEventAttributes(), ACTIVITYTASKCOMPLETEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getActivityTaskFailedEventAttributes(), ACTIVITYTASKFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getActivityTaskTimedOutEventAttributes(), ACTIVITYTASKTIMEDOUTEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getActivityTaskCanceledEventAttributes(), ACTIVITYTASKCANCELEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getActivityTaskCancelRequestedEventAttributes(), ACTIVITYTASKCANCELREQUESTEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getWorkflowExecutionSignaledEventAttributes(), WORKFLOWEXECUTIONSIGNALEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getMarkerRecordedEventAttributes(), MARKERRECORDEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getRecordMarkerFailedEventAttributes(), RECORDMARKERFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getTimerStartedEventAttributes(), TIMERSTARTEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getTimerFiredEventAttributes(), TIMERFIREDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getTimerCanceledEventAttributes(), TIMERCANCELEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getStartChildWorkflowExecutionInitiatedEventAttributes(),
                      STARTCHILDWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getChildWorkflowExecutionStartedEventAttributes(), CHILDWORKFLOWEXECUTIONSTARTEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getChildWorkflowExecutionCompletedEventAttributes(),
                      CHILDWORKFLOWEXECUTIONCOMPLETEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getChildWorkflowExecutionFailedEventAttributes(), CHILDWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getChildWorkflowExecutionTimedOutEventAttributes(), CHILDWORKFLOWEXECUTIONTIMEDOUTEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getChildWorkflowExecutionCanceledEventAttributes(), CHILDWORKFLOWEXECUTIONCANCELEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getChildWorkflowExecutionTerminatedEventAttributes(),
                      CHILDWORKFLOWEXECUTIONTERMINATEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getSignalExternalWorkflowExecutionInitiatedEventAttributes(),
                      SIGNALEXTERNALWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getExternalWorkflowExecutionSignaledEventAttributes(),
                      EXTERNALWORKFLOWEXECUTIONSIGNALEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getSignalExternalWorkflowExecutionFailedEventAttributes(),
                      SIGNALEXTERNALWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getExternalWorkflowExecutionCancelRequestedEventAttributes(),
                      EXTERNALWORKFLOWEXECUTIONCANCELREQUESTEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getRequestCancelExternalWorkflowExecutionInitiatedEventAttributes(),
                      REQUESTCANCELEXTERNALWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getRequestCancelExternalWorkflowExecutionFailedEventAttributes(),
                      REQUESTCANCELEXTERNALWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getScheduleActivityTaskFailedEventAttributes(), SCHEDULEACTIVITYTASKFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getRequestCancelActivityTaskFailedEventAttributes(),
                      REQUESTCANCELACTIVITYTASKFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getStartTimerFailedEventAttributes(), STARTTIMERFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getCancelTimerFailedEventAttributes(), CANCELTIMERFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getStartChildWorkflowExecutionFailedEventAttributes(),
                      STARTCHILDWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getLambdaFunctionScheduledEventAttributes(), LAMBDAFUNCTIONSCHEDULEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getLambdaFunctionStartedEventAttributes(), LAMBDAFUNCTIONSTARTEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getLambdaFunctionCompletedEventAttributes(), LAMBDAFUNCTIONCOMPLETEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getLambdaFunctionFailedEventAttributes(), LAMBDAFUNCTIONFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getLambdaFunctionTimedOutEventAttributes(), LAMBDAFUNCTIONTIMEDOUTEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getScheduleLambdaFunctionFailedEventAttributes(), SCHEDULELAMBDAFUNCTIONFAILEDEVENTATTRIBUTES_BINDING);
              protocolMarshaller.marshall(historyEvent.getStartLambdaFunctionFailedEventAttributes(), STARTLAMBDAFUNCTIONFAILEDEVENTATTRIBUTES_BINDING);
          } catch (Exception e) {
              throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
          }
      }