docs: def _split_rules(rules):
      '''
      Split rules with combined grants into individual rules.
  
      Amazon returns a set of rules with the same protocol, from and to ports
      together as a single rule with a set of grants. Authorizing and revoking
      rules, however, is done as a split set of rules. This function splits the
      rules up.
      '''
      split = []
      for rule in rules:
          ip_protocol = rule.get('ip_protocol')
          to_port = rule.get('to_port')
          from_port = rule.get('from_port')
          grants = rule.get('grants')
          for grant in grants:
              _rule = {'ip_protocol': ip_protocol,
                       'to_port': to_port,
                       'from_port': from_port}
              for key, val in six.iteritems(grant):
                  _rule[key] = val
              split.append(_rule)
      return split