code: @Override
      public CreateStateMachineResult createStateMachine(CreateStateMachineRequest request) {
          request = beforeClientExecution(request);
          return executeCreateStateMachine(request);
      }
docs: <p>
  Creates a state machine. A state machine consists of a collection of states that can do work (<code>Task</code>
  states), determine to which states to transition next (<code>Choice</code> states), stop an execution with an
  error (<code>Fail</code> states), and so on. State machines are specified using a JSON-based, structured
  language.
  </p>
  <note>
  <p>
  This operation is eventually consistent. The results are best effort and may not reflect very recent updates and
  changes.
  </p>
  </note>
  
  @param createStateMachineRequest
  @return Result of the CreateStateMachine 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 InvalidNameException
  The provided name is invalid.
  @throws StateMachineAlreadyExistsException
  A state machine with the same name but a different definition or role ARN already exists.
  @throws StateMachineDeletingException
  The specified state machine is being deleted.
  @throws StateMachineLimitExceededException
  The maximum number of state machines has been reached. Existing state machines must be deleted before a
  new state machine can be created.
  @throws TooManyTagsException
  You've exceeded the number of tags allowed for a resource. See the <a
  href="https://docs.aws.amazon.com/step-functions/latest/dg/limits.html"> Limits Topic</a> in the AWS Step
  Functions Developer Guide.
  @sample AWSStepFunctions.CreateStateMachine
  @see <a href="http://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/CreateStateMachine" target="_top">AWS API
  Documentation</a>