def get_stage(self, stage, **kwargs):
        '''
        :param stage: A number for the stage index (for the nth stage, starting from 0), or a string of the stage index, name, or ID
        :type stage: int or string
        :returns: Hash of stage descriptor in workflow
        '''
        stage_id = self._get_stage_id(stage)
        result = next((stage for stage in self.stages if stage['id'] == stage_id), None)
        if result is None:
            raise DXError('The stage ID ' + stage_id + ' could not be found')
        return result