blob: b2fb07e49f28f7246e001c03d0667cc08de6e8e1 [file] [log] [blame]
Abhay Kumara2ae5992025-11-10 14:02:24 +00001package sarama
2
3type DescribeGroupsRequest struct {
4 Version int16
5 Groups []string
6 IncludeAuthorizedOperations bool
7}
8
9func (r *DescribeGroupsRequest) setVersion(v int16) {
10 r.Version = v
11}
12
13func (r *DescribeGroupsRequest) encode(pe packetEncoder) error {
14 if err := pe.putStringArray(r.Groups); err != nil {
15 return err
16 }
17 if r.Version >= 3 {
18 pe.putBool(r.IncludeAuthorizedOperations)
19 }
20 pe.putEmptyTaggedFieldArray()
21 return nil
22}
23
24func (r *DescribeGroupsRequest) decode(pd packetDecoder, version int16) (err error) {
25 r.Version = version
26 r.Groups, err = pd.getStringArray()
27 if err != nil {
28 return err
29 }
30 if r.Version >= 3 {
31 if r.IncludeAuthorizedOperations, err = pd.getBool(); err != nil {
32 return err
33 }
34 }
35 _, err = pd.getEmptyTaggedFieldArray()
36 return err
37}
38
39func (r *DescribeGroupsRequest) key() int16 {
40 return apiKeyDescribeGroups
41}
42
43func (r *DescribeGroupsRequest) version() int16 {
44 return r.Version
45}
46
47func (r *DescribeGroupsRequest) headerVersion() int16 {
48 if r.Version >= 5 {
49 return 2
50 }
51 return 1
52}
53
54func (r *DescribeGroupsRequest) isValidVersion() bool {
55 return r.Version >= 0 && r.Version <= 5
56}
57
58func (r *DescribeGroupsRequest) isFlexible() bool {
59 return r.isFlexibleVersion(r.Version)
60}
61
62func (r *DescribeGroupsRequest) isFlexibleVersion(version int16) bool {
63 return version >= 5
64}
65
66func (r *DescribeGroupsRequest) requiredVersion() KafkaVersion {
67 switch r.Version {
68 case 5:
69 return V2_4_0_0
70 case 4:
71 return V2_4_0_0
72 case 3:
73 return V2_3_0_0
74 case 2:
75 return V2_0_0_0
76 case 1:
77 return V0_11_0_0
78 case 0:
79 return V0_9_0_0
80 default:
81 return V2_4_0_0
82 }
83}
84
85func (r *DescribeGroupsRequest) AddGroup(group string) {
86 r.Groups = append(r.Groups, group)
87}