code: def parse_resource_id(rid):
      if not rid:
          return {}
      match = _ARMID_RE.match(rid)
      if match:
          result = match.groupdict()
          children = _CHILDREN_RE.finditer(result['children'] or '')
          count = None
          for count, child in enumerate(children):
              result.update({
                  key + '_%d' % (count + 1): group for key, group in child.groupdict().items()})
          result['last_child_num'] = count + 1 if isinstance(count, int) else None
          result = _populate_alternate_kwargs(result)
      else:
          result = dict(name=rid)
      return {key: value for key, value in result.items() if value is not None}