blob: 449102f74a7cbffbe46b665be7b858a6a40c6347 [file] [log] [blame]
khenaidooac637102019-01-14 15:44:34 -05001package sarama
2
khenaidood948f772021-08-11 17:49:24 -04003// CreateAclsRequest is an acl creation request
khenaidooac637102019-01-14 15:44:34 -05004type CreateAclsRequest struct {
William Kurkiandaa6bb22019-03-07 12:26:28 -05005 Version int16
khenaidooac637102019-01-14 15:44:34 -05006 AclCreations []*AclCreation
7}
8
9func (c *CreateAclsRequest) encode(pe packetEncoder) error {
10 if err := pe.putArrayLength(len(c.AclCreations)); err != nil {
11 return err
12 }
13
14 for _, aclCreation := range c.AclCreations {
William Kurkiandaa6bb22019-03-07 12:26:28 -050015 if err := aclCreation.encode(pe, c.Version); err != nil {
khenaidooac637102019-01-14 15:44:34 -050016 return err
17 }
18 }
19
20 return nil
21}
22
23func (c *CreateAclsRequest) decode(pd packetDecoder, version int16) (err error) {
William Kurkiandaa6bb22019-03-07 12:26:28 -050024 c.Version = version
khenaidooac637102019-01-14 15:44:34 -050025 n, err := pd.getArrayLength()
26 if err != nil {
27 return err
28 }
29
30 c.AclCreations = make([]*AclCreation, n)
31
32 for i := 0; i < n; i++ {
33 c.AclCreations[i] = new(AclCreation)
34 if err := c.AclCreations[i].decode(pd, version); err != nil {
35 return err
36 }
37 }
38
39 return nil
40}
41
Scott Baker8461e152019-10-01 14:44:30 -070042func (c *CreateAclsRequest) key() int16 {
khenaidooac637102019-01-14 15:44:34 -050043 return 30
44}
45
Scott Baker8461e152019-10-01 14:44:30 -070046func (c *CreateAclsRequest) version() int16 {
47 return c.Version
khenaidooac637102019-01-14 15:44:34 -050048}
49
khenaidood948f772021-08-11 17:49:24 -040050func (c *CreateAclsRequest) headerVersion() int16 {
51 return 1
52}
53
Scott Baker8461e152019-10-01 14:44:30 -070054func (c *CreateAclsRequest) requiredVersion() KafkaVersion {
55 switch c.Version {
William Kurkiandaa6bb22019-03-07 12:26:28 -050056 case 1:
57 return V2_0_0_0
58 default:
59 return V0_11_0_0
60 }
khenaidooac637102019-01-14 15:44:34 -050061}
62
khenaidood948f772021-08-11 17:49:24 -040063// AclCreation is a wrapper around Resource and Acl type
khenaidooac637102019-01-14 15:44:34 -050064type AclCreation struct {
65 Resource
66 Acl
67}
68
William Kurkiandaa6bb22019-03-07 12:26:28 -050069func (a *AclCreation) encode(pe packetEncoder, version int16) error {
70 if err := a.Resource.encode(pe, version); err != nil {
khenaidooac637102019-01-14 15:44:34 -050071 return err
72 }
73 if err := a.Acl.encode(pe); err != nil {
74 return err
75 }
76
77 return nil
78}
79
80func (a *AclCreation) decode(pd packetDecoder, version int16) (err error) {
81 if err := a.Resource.decode(pd, version); err != nil {
82 return err
83 }
84 if err := a.Acl.decode(pd, version); err != nil {
85 return err
86 }
87
88 return nil
89}