docs: def session_create(consul_url=None, token=None, **kwargs):
      '''
      Used to create a session.
  
      :param consul_url: The Consul server URL.
      :param lockdelay: Duration string using a "s" suffix for seconds.
                        The default is 15s.
      :param node: Must refer to a node that is already registered,
                   if specified. By default, the agent's own node
                   name is used.
      :param name: A human-readable name for the session
      :param checks: A list of associated health checks. It is highly
                     recommended that, if you override this list, you
                     include the default "serfHealth".
      :param behavior: Can be set to either release or delete. This controls
                       the behavior when a session is invalidated. By default,
                       this is release, causing any locks that are held to be
                       released. Changing this to delete causes any locks that
                       are held to be deleted. delete is useful for creating
                       ephemeral key/value entries.
      :param ttl: Session is invalidated if it is not renewed before
                  the TTL expires
      :return: Boolean and message indicating success or failure.
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' consul.session_create node='node1' name='my-session' behavior='delete' ttl='3600s'
  
      '''
      ret = {}
      if not consul_url:
          consul_url = _get_config()
          if not consul_url:
              log.error('No Consul URL found.')
              ret['message'] = 'No Consul URL found.'
              ret['res'] = False
              return ret
      data = {}
  
      if 'lockdelay' in kwargs:
          data['LockDelay'] = kwargs['lockdelay']
  
      if 'node' in kwargs:
          data['Node'] = kwargs['node']
  
      if 'name' in kwargs:
          data['Name'] = kwargs['name']
      else:
          raise SaltInvocationError('Required argument "name" is missing.')
  
      if 'checks' in kwargs:
          data['Touch'] = kwargs['touch']
  
      if 'behavior' in kwargs:
          if not kwargs['behavior'] in ('delete', 'release'):
              ret['message'] = ('Behavior must be ',
                                'either delete or release.')
              ret['res'] = False
              return ret
          data['Behavior'] = kwargs['behavior']
  
      if 'ttl' in kwargs:
          _ttl = kwargs['ttl']
          if six.text_type(_ttl).endswith('s'):
              _ttl = _ttl[:-1]
  
          if int(_ttl) < 0 or int(_ttl) > 3600:
              ret['message'] = ('TTL must be ',
                                'between 0 and 3600.')
              ret['res'] = False
              return ret
          data['TTL'] = '{0}s'.format(_ttl)
  
      function = 'session/create'
      res = _query(consul_url=consul_url,
                   function=function,
                   token=token,
                   method='PUT',
                   data=data)
  
      if res['res']:
          ret['res'] = True
          ret['message'] = 'Created session {0}.'.format(kwargs['name'])
      else:
          ret['res'] = False
          ret['message'] = 'Unable to create session {0}.'.format(kwargs['name'])
      return ret