docs: def _get_group(conn=None, name=None, vpc_id=None, vpc_name=None, group_id=None,
                 region=None, key=None, keyid=None, profile=None):  # pylint: disable=W0613
      '''
      Get a group object given a name, name and vpc_id/vpc_name or group_id. Return
      a boto.ec2.securitygroup.SecurityGroup object if the group is found, else
      return None.
      '''
      if vpc_name and vpc_id:
          raise SaltInvocationError('The params \'vpc_id\' and \'vpc_name\' '
                                    'are mutually exclusive.')
      if vpc_name:
          try:
              vpc_id = _vpc_name_to_id(vpc_id=vpc_id, vpc_name=vpc_name, region=region,
                                  key=key, keyid=keyid, profile=profile)
          except boto.exception.BotoServerError as e:
              log.debug(e)
              return None
      if name:
          if vpc_id is None:
              log.debug('getting group for %s', name)
              group_filter = {'group-name': name}
              filtered_groups = conn.get_all_security_groups(filters=group_filter)
              # security groups can have the same name if groups exist in both
              # EC2-Classic and EC2-VPC
              # iterate through groups to ensure we return the EC2-Classic
              # security group
              for group in filtered_groups:
                  # a group in EC2-Classic will have vpc_id set to None
                  if group.vpc_id is None:
                      return group
              # If there are more security groups, and no vpc_id, we can't know which one to choose.
              if len(filtered_groups) > 1:
                  raise CommandExecutionError('Security group belongs to more VPCs, specify the VPC ID!')
              elif len(filtered_groups) == 1:
                  return filtered_groups[0]
              return None
          elif vpc_id:
              log.debug('getting group for %s in vpc_id %s', name, vpc_id)
              group_filter = {'group-name': name, 'vpc_id': vpc_id}
              filtered_groups = conn.get_all_security_groups(filters=group_filter)
              if len(filtered_groups) == 1:
                  return filtered_groups[0]
              else:
                  return None
          else:
              return None
      elif group_id:
          try:
              groups = conn.get_all_security_groups(group_ids=[group_id])
          except boto.exception.BotoServerError as e:
              log.debug(e)
              return None
          if len(groups) == 1:
              return groups[0]
          else:
              return None
      else:
          return None