code: func (client *Client) GetSecurityGroups(filters ...Filter) ([]SecurityGroup, Warnings, error) {
  	request, err := client.newHTTPRequest(requestOptions{
  		RequestName: internal.GetSecurityGroupsRequest,
  		Query:       ConvertFilterParameters(filters),
  	})
  
  	if err != nil {
  		return nil, nil, err
  	}
  
  	var securityGroupsList []SecurityGroup
  	warnings, err := client.paginate(request, SecurityGroup{}, func(item interface{}) error {
  		if securityGroup, ok := item.(SecurityGroup); ok {
  			securityGroupsList = append(securityGroupsList, securityGroup)
  		} else {
  			return ccerror.UnknownObjectInListError{
  				Expected:   SecurityGroup{},
  				Unexpected: item,
  			}
  		}
  		return nil
  	})
  
  	return securityGroupsList, warnings, err
  }
docs: // GetSecurityGroups returns a list of Security Groups based off the provided
  // filters.