code: def output(self, *args, **kwargs):
          
          full_value = kwargs.pop('full_value', False)
          name_provided = (len(args) > 0)
          kwargs['json'] = IsFlagged
          if not kwargs.get('capture_output', True) is True:
            raise ValueError('capture_output is required for this method')
  
          ret, out, err = self.output_cmd(*args, **kwargs)
  
          if ret != 0:
              return None
  
          out = out.lstrip()
  
          value = json.loads(out)
  
          if name_provided and not full_value:
              value = value['value']
  
          return value
docs: https://www.terraform.io/docs/commands/output.html
  
          Note that this method does not conform to the (ret_code, out, err) return convention. To use
          the "output" command with the standard convention, call "output_cmd" instead of
          "output".
  
          :param args:   Positional arguments. There is one optional positional
                         argument NAME; if supplied, the returned output text
                         will be the json for a single named output value.
          :param kwargs: Named options, passed to the command. In addition, 
                            'full_value': If True, and NAME is provided, then
                                          the return value will be a dict with
                                          "value', 'type', and 'sensitive'
                                          properties.
          :return: None, if an error occured
                   Output value as a string, if NAME is provided and full_value
                      is False or not provided
                   Output value as a dict with 'value', 'sensitive', and 'type' if
                      NAME is provided and full_value is True.
                   dict of named dicts each with 'value', 'sensitive', and 'type',
                      if NAME is not provided