blob: da1cdefc301f35663bdbd3780cd3bb0a79d29c52 [file] [log] [blame]
khenaidooac637102019-01-14 15:44:34 -05001package sarama
2
Scott Bakerbeb3cfa2019-10-01 14:44:30 -07003//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 Bakerbeb3cfa2019-10-01 14:44:30 -070042func (c *CreateAclsRequest) key() int16 {
khenaidooac637102019-01-14 15:44:34 -050043 return 30
44}
45
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070046func (c *CreateAclsRequest) version() int16 {
47 return c.Version
khenaidooac637102019-01-14 15:44:34 -050048}
49
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070050func (c *CreateAclsRequest) requiredVersion() KafkaVersion {
51 switch c.Version {
William Kurkiandaa6bb22019-03-07 12:26:28 -050052 case 1:
53 return V2_0_0_0
54 default:
55 return V0_11_0_0
56 }
khenaidooac637102019-01-14 15:44:34 -050057}
58
Scott Bakerbeb3cfa2019-10-01 14:44:30 -070059//AclCreation is a wrapper around Resource and Acl type
khenaidooac637102019-01-14 15:44:34 -050060type AclCreation struct {
61 Resource
62 Acl
63}
64
William Kurkiandaa6bb22019-03-07 12:26:28 -050065func (a *AclCreation) encode(pe packetEncoder, version int16) error {
66 if err := a.Resource.encode(pe, version); err != nil {
khenaidooac637102019-01-14 15:44:34 -050067 return err
68 }
69 if err := a.Acl.encode(pe); err != nil {
70 return err
71 }
72
73 return nil
74}
75
76func (a *AclCreation) decode(pd packetDecoder, version int16) (err error) {
77 if err := a.Resource.decode(pd, version); err != nil {
78 return err
79 }
80 if err := a.Acl.decode(pd, version); err != nil {
81 return err
82 }
83
84 return nil
85}