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