code: def append_underlying_workflow_desc(self, describe_output, region):
          
          assert(describe_output is None or describe_output.get('class') == 'globalworkflow')
  
          underlying_workflow_desc = self.describe_underlying_workflow(region,
                                                                       describe_output=describe_output)
          for field in ['inputs', 'outputs', 'inputSpec', 'outputSpec', 'stages']:
              describe_output[field] = underlying_workflow_desc[field]
          return describe_output
docs: :param region: region name
          :type region: string
          :param describe_output: description of a global workflow
          :type describe_output: dict
          :returns: object description of the global workflow
          :rtype: : dict
  
          Appends stages, inputs, outputs and other workflow-specific metadata to a global workflow describe output.
  
          Note: global workflow description does not contain functional metadata (stages, IO), since this data
          is region-specific (due to applets and bound inputs) and so reside only in region-specific underlying
          workflows. We add them to global_workflow_desc so that it can be used for a workflow or a global workflow