code: def _get_internal_slot(slot_key=None,
                         filler_pipeline_key=None,
                         slot_dict=None):
    
    if slot_dict is None:
      slot_dict = {}
  
    slot_record = slot_dict.get(slot_key)
    if slot_record is None:
      raise PipelineStatusError(
          'Could not find data for output slot key "%s".' % slot_key)
  
    output = {}
    if slot_record.status == _SlotRecord.FILLED:
      output['status'] = 'filled'
      output['fillTimeMs'] = _get_timestamp_ms(slot_record.fill_time)
      output['value'] = slot_record.value
      filler_pipeline_key = (
          _SlotRecord.filler.get_value_for_datastore(slot_record))
    else:
      output['status'] = 'waiting'
  
    if filler_pipeline_key:
      output['fillerPipelineId'] = filler_pipeline_key.name()
  
    return output
docs: Gets information about a _SlotRecord for display in UI.
  
    Args:
      slot_key: The db.Key of the slot to fetch.
      filler_pipeline_key: In the case the slot has not yet been filled, assume
        that the given db.Key (for a _PipelineRecord) will be the filler of
        the slot in the future.
      slot_dict: The slot JSON dictionary.
  
    Returns:
      Dictionary with the keys:
        status: Slot status: 'filled' or 'waiting'
        fillTimeMs: Time in milliseconds since the epoch of when it was filled.
        value: The current value of the slot, which is a slot's JSON dictionary.
        fillerPipelineId: The pipeline ID of what stage has or should fill
          this slot.
  
    Raises:
      PipelineStatusError if any input is bad.