blob: b380161aa45a6a8dc8dd8009b9b578e3f5157771 [file] [log] [blame]
khenaidooac637102019-01-14 15:44:34 -05001package sarama
2
3type AclFilter struct {
William Kurkiandaa6bb22019-03-07 12:26:28 -05004 Version int
5 ResourceType AclResourceType
6 ResourceName *string
7 ResourcePatternTypeFilter AclResourcePatternType
8 Principal *string
9 Host *string
10 Operation AclOperation
11 PermissionType AclPermissionType
khenaidooac637102019-01-14 15:44:34 -050012}
13
14func (a *AclFilter) encode(pe packetEncoder) error {
15 pe.putInt8(int8(a.ResourceType))
16 if err := pe.putNullableString(a.ResourceName); err != nil {
17 return err
18 }
William Kurkiandaa6bb22019-03-07 12:26:28 -050019
20 if a.Version == 1 {
21 pe.putInt8(int8(a.ResourcePatternTypeFilter))
22 }
23
khenaidooac637102019-01-14 15:44:34 -050024 if err := pe.putNullableString(a.Principal); err != nil {
25 return err
26 }
27 if err := pe.putNullableString(a.Host); err != nil {
28 return err
29 }
30 pe.putInt8(int8(a.Operation))
31 pe.putInt8(int8(a.PermissionType))
32
33 return nil
34}
35
36func (a *AclFilter) decode(pd packetDecoder, version int16) (err error) {
37 resourceType, err := pd.getInt8()
38 if err != nil {
39 return err
40 }
41 a.ResourceType = AclResourceType(resourceType)
42
43 if a.ResourceName, err = pd.getNullableString(); err != nil {
44 return err
45 }
46
William Kurkiandaa6bb22019-03-07 12:26:28 -050047 if a.Version == 1 {
48 pattern, err := pd.getInt8()
William Kurkiandaa6bb22019-03-07 12:26:28 -050049 if err != nil {
50 return err
51 }
52
53 a.ResourcePatternTypeFilter = AclResourcePatternType(pattern)
54 }
55
khenaidooac637102019-01-14 15:44:34 -050056 if a.Principal, err = pd.getNullableString(); err != nil {
57 return err
58 }
59
60 if a.Host, err = pd.getNullableString(); err != nil {
61 return err
62 }
63
64 operation, err := pd.getInt8()
65 if err != nil {
66 return err
67 }
68 a.Operation = AclOperation(operation)
69
70 permissionType, err := pd.getInt8()
71 if err != nil {
72 return err
73 }
74 a.PermissionType = AclPermissionType(permissionType)
75
76 return nil
77}