docs: def expand_permissions(self, permissions):
          """Expand each list of cidr, prefix list, user id group pair
          by port/protocol as an individual rule.
  
          The console ux automatically expands them out as addition/removal is
          per this expansion, the describe calls automatically group them.
          """
          for p in permissions:
              np = dict(p)
              values = {}
              for k in (u'IpRanges',
                        u'Ipv6Ranges',
                        u'PrefixListIds',
                        u'UserIdGroupPairs'):
                  values[k] = np.pop(k, ())
                  np[k] = []
              for k, v in values.items():
                  if not v:
                      continue
                  for e in v:
                      ep = dict(np)
                      ep[k] = [e]
                      yield ep