code: def service(self):
          
          if self._service is not None:
              return self._service
  
          if self._input_definition is None:
              return None
  
          splunkd_uri = self._input_definition.metadata["server_uri"]
          session_key = self._input_definition.metadata["session_key"]
  
          splunkd = urlsplit(splunkd_uri, allow_fragments=False)
  
          self._service = Service(
              scheme=splunkd.scheme,
              host=splunkd.hostname,
              port=splunkd.port,
              token=session_key,
          )
  
          return self._service
docs: Returns a Splunk service object for this script invocation.
  
          The service object is created from the Splunkd URI and session key
          passed to the command invocation on the modular input stream. It is
          available as soon as the :code:`Script.stream_events` method is
          called.
  
          :return: :class:splunklib.client.Service. A value of None is returned,
          if you call this method before the :code:`Script.stream_events` method
          is called.