code: @Override
      public StartSessionResult startSession(StartSessionRequest request) {
          request = beforeClientExecution(request);
          return executeStartSession(request);
      }
docs: <p>
  Initiates a connection to a target (for example, an instance) for a Session Manager session. Returns a URL and
  token that can be used to open a WebSocket connection for sending input and receiving outputs.
  </p>
  <note>
  <p>
  AWS CLI usage: <code>start-session</code> is an interactive command that requires the Session Manager plugin to
  be installed on the client machine making the call. For information, see <a href=
  "http://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html">
  Install the Session Manager Plugin for the AWS CLI</a> in the <i>AWS Systems Manager User Guide</i>.
  </p>
  </note>
  
  @param startSessionRequest
  @return Result of the StartSession operation returned by the service.
  @throws InvalidDocumentException
  The specified document does not exist.
  @throws TargetNotConnectedException
  The specified target instance for the session is not fully configured for use with Session Manager. For
  more information, see <a
  href="http://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html"
  >Getting Started with Session Manager</a> in the <i>AWS Systems Manager User Guide</i>.
  @throws InternalServerErrorException
  An error occurred on the server side.
  @sample AWSSimpleSystemsManagement.StartSession
  @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StartSession" target="_top">AWS API
  Documentation</a>