func (v Groups) GetBanned(params GroupsGetBannedParams) (*GroupsGetBannedResponse, error) {
	r, err := v.API.Request("groups.getBanned", params)
	if err != nil {
		return nil, err
	}
	var resp GroupsGetBannedResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return &resp, nil
}
GetBanned Returns a list of users on a community blacklist.
package vkapi
import (
	"encoding/json"
	"github.com/stek29/vk"
)
type Groups struct {
	API vk.API
}
type GroupsIsMemberParams struct {
	GroupID string `url:"group_id"`
	UserID int `url:"user_id,omitempty"`
	UserIDs CSVIntSlice `url:"user_ids,omitempty"`
	Extended bool `url:"extended,omitempty"`
}
type GroupsIsMemberResponse interface {
	isGroupsIsMember()
}
type GroupsIsMemberResponseNormal vk.BoolInt
func (GroupsIsMemberResponseNormal) isGroupsIsMember() {}
type GroupsIsMemberResponseExtended struct {
	Member vk.BoolInt `json:"member,omitempty"`
	Invitation vk.BoolInt `json:"invitation,omitempty"`
	Request vk.BoolInt `json:"request,omitempty"`
}
func (GroupsIsMemberResponseExtended) isGroupsIsMember() {}
func (v Groups) IsMember(params GroupsIsMemberParams) (GroupsIsMemberResponse, error) {
	r, err := v.API.Request("groups.isMember", params)
	if err != nil {
		return nil, err
	}
	var resp GroupsIsMemberResponse
	if params.Extended {
		var tmp GroupsIsMemberResponseExtended
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	} else {
		var tmp GroupsIsMemberResponseNormal
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	}
	if err != nil {
		return nil, err
	}
	return resp, nil
}
type GroupsGetByIDParams struct {
	GroupIDs CSVStringSlice `url:"group_ids,omitempty"`
	GroupID string `url:"group_id,omitempty"`
	Fields CSVStringSlice `url:"fields,omitempty"`
}
type GroupsGetByIDResponse []vk.Group
func (v Groups) GetByID(params GroupsGetByIDParams) (GroupsGetByIDResponse, error) {
	r, err := v.API.Request("groups.getById", params)
	if err != nil {
		return nil, err
	}
	var resp GroupsGetByIDResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return resp, nil
}
type GroupsGetParams struct {
	UserID int `url:"user_id,omitempty"`
	Extended bool `url:"extended,omitempty"`
	Filter CSVStringSlice `url:"filter,omitempty"`
	Fields CSVStringSlice `url:"fields,omitempty"`
	Offset int `url:"offset,omitempty"`
	Count int `url:"count,omitempty"`
}
type GroupsGetResponse interface {
	isGroupsGet()
}
type GroupsGetResponseNormal struct {
	Count int `json:"count,omitempty"`
	Items []int `json:"items,omitempty"`
}
func (GroupsGetResponseNormal) isGroupsGet() {}
type GroupsGetResponseExtended struct {
	Count int        `json:"count,omitempty"`
	Items []vk.Group `json:"items,omitempty"`
}
func (GroupsGetResponseExtended) isGroupsGet() {}
func (v Groups) Get(params GroupsGetParams) (GroupsGetResponse, error) {
	r, err := v.API.Request("groups.get", params)
	if err != nil {
		return nil, err
	}
	var resp GroupsGetResponse
	if params.Extended {
		var tmp GroupsGetResponseExtended
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	} else {
		var tmp GroupsGetResponseNormal
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	}
	if err != nil {
		return nil, err
	}
	return resp, nil
}
type GroupsGetMembersParams struct {
	GroupID string `url:"group_id,omitempty"`
	Sort string `url:"sort,omitempty"`
	Offset int `url:"offset,omitempty"`
	Count int `url:"count,omitempty"`
	Fields CSVStringSlice `url:"fields,omitempty"`
	Filter string `url:"filter,omitempty"`
}
type GroupsGetMembersResponse struct {
	Count int `json:"count,omitempty"`
	Items []int `json:"items,omitempty"`
}
func (v Groups) GetMembers(params GroupsGetMembersParams) (*GroupsGetMembersResponse, error) {
	r, err := v.API.Request("groups.getMembers", params)
	if err != nil {
		return nil, err
	}
	var resp GroupsGetMembersResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return &resp, nil
}
type GroupsJoinParams struct {
	GroupID int `url:"group_id,omitempty"`
	NotSure string `url:"not_sure,omitempty"`
}
func (v Groups) Join(params GroupsJoinParams) (bool, error) {
	r, err := v.API.Request("groups.join", params)
	if err != nil {
		return false, err
	}
	return decodeBoolIntResponse(r)
}
type GroupsLeaveParams struct {
	GroupID int `url:"group_id"`
}
func (v Groups) Leave(params GroupsLeaveParams) (bool, error) {
	r, err := v.API.Request("groups.leave", params)
	if err != nil {
		return false, err
	}
	return decodeBoolIntResponse(r)
}
type GroupsSearchParams struct {
	Q string `url:"q"`
	Type string `url:"type,omitempty"`
	CountryID int `url:"country_id,omitempty"`
	CityID int `url:"city_id,omitempty"`
	Future bool `url:"future,omitempty"`
	Market bool `url:"market,omitempty"`
	Sort int `url:"sort,omitempty"`
	Offset int `url:"offset,omitempty"`
	Count int `url:"count,omitempty"`
}
type GroupsSearchResponse struct {
	Count int        `json:"count,omitempty"`
	Items []vk.Group `json:"items,omitempty"`
}
func (v Groups) Search(params GroupsSearchParams) (*GroupsSearchResponse, error) {
	r, err := v.API.Request("groups.search", params)
	if err != nil {
		return nil, err
	}
	var resp GroupsSearchResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return &resp, nil
}
type GroupsGetCatalogParams struct {
	CategoryID int `url:"category_id,omitempty"`
	SubcategoryID int `url:"subcategory_id,omitempty"`
}
type GroupsGetCatalogResponse struct {
	Count int        `json:"count,omitempty"`
	Items []vk.Group `json:"items,omitempty"`
}
func (v Groups) GetCatalog(params GroupsGetCatalogParams) (*GroupsGetCatalogResponse, error) {
	r, err := v.API.Request("groups.getCatalog", params)
	if err != nil {
		return nil, err
	}
	var resp GroupsGetCatalogResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return &resp, nil
}
type GroupsGetCatalogInfoParams struct {
	Extended bool `url:"extended,omitempty"`
	Subcategories bool `url:"subcategories,omitempty"`
}
type GroupsGetCatalogInfoResponse interface {
	isGroupsGetCatalogInfo()
}
type GroupsGetCatalogInfoResponseNormal struct {
	Enabled    int           `json:"enabled,omitempty"`
	Categories []vk.Category `json:"categories,omitempty"`
}
func (GroupsGetCatalogInfoResponseNormal) isGroupsGetCatalogInfo() {}
type GroupsGetCatalogInfoResponseExtended struct {
	Enabled    int           `json:"enabled,omitempty"`
	Categories []vk.Category `json:"categories,omitempty"`
}
func (GroupsGetCatalogInfoResponseExtended) isGroupsGetCatalogInfo() {}
func (v Groups) GetCatalogInfo(params GroupsGetCatalogInfoParams) (GroupsGetCatalogInfoResponse, error) {
	r, err := v.API.Request("groups.getCatalogInfo", params)
	if err != nil {
		return nil, err
	}
	var resp GroupsGetCatalogInfoResponse
	if params.Extended {
		var tmp GroupsGetCatalogInfoResponseExtended
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	} else {
		var tmp GroupsGetCatalogInfoResponseNormal
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	}
	if err != nil {
		return nil, err
	}
	return resp, nil
}
type GroupsGetInvitesParams struct {
	Offset int `url:"offset,omitempty"`
	Count int `url:"count,omitempty"`
	Extended bool `url:"extended,omitempty"`
}
type GroupsGetInvitesResponse interface {
	isGroupsGetInvites()
}
type GroupsGetInvitesResponseNormal struct {
	Count int        `json:"count,omitempty"`
	Items []vk.Group `json:"items,omitempty"`
}
func (GroupsGetInvitesResponseNormal) isGroupsGetInvites() {}
type GroupsGetInvitesResponseExtended struct {
	Count    int        `json:"count,omitempty"`
	Items    []vk.Group `json:"items,omitempty"`
	Profiles []vk.User  `json:"profiles,omitempty"`
}
func (GroupsGetInvitesResponseExtended) isGroupsGetInvites() {}
func (v Groups) GetInvites(params GroupsGetInvitesParams) (GroupsGetInvitesResponse, error) {
	r, err := v.API.Request("groups.getInvites", params)
	if err != nil {
		return nil, err
	}
	var resp GroupsGetInvitesResponse
	if params.Extended {
		var tmp GroupsGetInvitesResponseExtended
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	} else {
		var tmp GroupsGetInvitesResponseNormal
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	}
	if err != nil {
		return nil, err
	}
	return resp, nil
}
type GroupsGetInvitedUsersParams struct {
	GroupID int `url:"group_id"`
	Offset int `url:"offset,omitempty"`
	Count int `url:"count,omitempty"`
	Fields CSVStringSlice `url:"fields,omitempty"`
	NameCase string `url:"name_case,omitempty"`
}
type GroupsGetInvitedUsersResponse struct {
	Count int       `json:"count,omitempty"`
	Items []vk.User `json:"items,omitempty"`
}
func (v Groups) GetInvitedUsers(params GroupsGetInvitedUsersParams) (*GroupsGetInvitedUsersResponse, error) {
	r, err := v.API.Request("groups.getInvitedUsers", params)
	if err != nil {
		return nil, err
	}
	var resp GroupsGetInvitedUsersResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return &resp, nil
}
type GroupsGetBannedParams struct {
	GroupID int `url:"group_id"`
	Offset int `url:"offset,omitempty"`
	Count   int            `url:"count,omitempty"`
	Fields  CSVStringSlice `url:"fields,omitempty"`
	OwnerID int            `url:"owner_id,omitempty"`
}
type GroupsGetBannedResponse struct {
	Count int `json:"count,omitempty"`
	Items []struct {
		Type string `json:"type,omitempty"`
		Group vk.Group `json:"group,omitempty"`
		Profile vk.User `json:"profile,omitempty"`
		BanInfo struct {
			AdminID int `json:"admin_id,omitempty"`
			Date int `json:"date,omitempty"`
			Reason int `json:"reason,omitempty"`
			Comment string `json:"comment,omitempty"`
			EndDate int `json:"end_date,omitempty"`
		} `json:"ban_info,omitempty"`
	} `json:"items,omitempty"`
}