blob: c9e255287b26171b74663b9b4f81519b05a26b0d [file] [log] [blame]
Abhay Kumar40252eb2025-10-13 13:25:53 +00001package sarama
2
3import "time"
4
5// DescribeAclsResponse is a describe acl response type
6type DescribeAclsResponse struct {
7 Version int16
8 ThrottleTime time.Duration
9 Err KError
10 ErrMsg *string
11 ResourceAcls []*ResourceAcls
12}
13
14func (d *DescribeAclsResponse) setVersion(v int16) {
15 d.Version = v
16}
17
18func (d *DescribeAclsResponse) encode(pe packetEncoder) error {
19 pe.putDurationMs(d.ThrottleTime)
20 pe.putKError(d.Err)
21
22 if err := pe.putNullableString(d.ErrMsg); err != nil {
23 return err
24 }
25
26 if err := pe.putArrayLength(len(d.ResourceAcls)); err != nil {
27 return err
28 }
29
30 for _, resourceAcl := range d.ResourceAcls {
31 if err := resourceAcl.encode(pe, d.Version); err != nil {
32 return err
33 }
34 }
35
36 return nil
37}
38
39func (d *DescribeAclsResponse) decode(pd packetDecoder, version int16) (err error) {
40 if d.ThrottleTime, err = pd.getDurationMs(); err != nil {
41 return err
42 }
43
44 d.Err, err = pd.getKError()
45 if err != nil {
46 return err
47 }
48
49 errmsg, err := pd.getString()
50 if err != nil {
51 return err
52 }
53 if errmsg != "" {
54 d.ErrMsg = &errmsg
55 }
56
57 n, err := pd.getArrayLength()
58 if err != nil {
59 return err
60 }
61 d.ResourceAcls = make([]*ResourceAcls, n)
62
63 for i := 0; i < n; i++ {
64 d.ResourceAcls[i] = new(ResourceAcls)
65 if err := d.ResourceAcls[i].decode(pd, version); err != nil {
66 return err
67 }
68 }
69
70 return nil
71}
72
73func (d *DescribeAclsResponse) key() int16 {
74 return apiKeyDescribeAcls
75}
76
77func (d *DescribeAclsResponse) version() int16 {
78 return d.Version
79}
80
81func (d *DescribeAclsResponse) headerVersion() int16 {
82 return 0
83}
84
85func (d *DescribeAclsResponse) isValidVersion() bool {
86 return d.Version >= 0 && d.Version <= 1
87}
88
89func (d *DescribeAclsResponse) requiredVersion() KafkaVersion {
90 switch d.Version {
91 case 1:
92 return V2_0_0_0
93 default:
94 return V0_11_0_0
95 }
96}
97
98func (r *DescribeAclsResponse) throttleTime() time.Duration {
99 return r.ThrottleTime
100}