code: @Override
      public UpdateStateMachineResult updateStateMachine(UpdateStateMachineRequest request) {
          request = beforeClientExecution(request);
          return executeUpdateStateMachine(request);
      }
docs: <p>
  Updates an existing state machine by modifying its <code>definition</code> and/or <code>roleArn</code>. Running
  executions will continue to use the previous <code>definition</code> and <code>roleArn</code>. You must include
  at least one of <code>definition</code> or <code>roleArn</code> or you will receive a
  <code>MissingRequiredParameter</code> error.
  </p>
  <note>
  <p>
  All <code>StartExecution</code> calls within a few seconds will use the updated <code>definition</code> and
  <code>roleArn</code>. Executions started immediately after calling <code>UpdateStateMachine</code> may use the
  previous state machine <code>definition</code> and <code>roleArn</code>.
  </p>
  </note>
  
  @param updateStateMachineRequest
  @return Result of the UpdateStateMachine operation returned by the service.
  @throws InvalidArnException
  The provided Amazon Resource Name (ARN) is invalid.
  @throws InvalidDefinitionException
  The provided Amazon States Language definition is invalid.
  @throws MissingRequiredParameterException
  Request is missing a required parameter. This error occurs if both <code>definition</code> and
  <code>roleArn</code> are not specified.
  @throws StateMachineDeletingException
  The specified state machine is being deleted.
  @throws StateMachineDoesNotExistException
  The specified state machine does not exist.
  @sample AWSStepFunctions.UpdateStateMachine
  @see <a href="http://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/UpdateStateMachine" target="_top">AWS API
  Documentation</a>