blob: cfb6369ac1dc6d7dd0628f038fc8021a128c0777 [file] [log] [blame]
khenaidooac637102019-01-14 15:44:34 -05001package sarama
2
3import "time"
4
khenaidood948f772021-08-11 17:49:24 -04005// AlterConfigsResponse is a response type for alter config
khenaidooac637102019-01-14 15:44:34 -05006type AlterConfigsResponse struct {
7 ThrottleTime time.Duration
8 Resources []*AlterConfigsResourceResponse
9}
10
khenaidood948f772021-08-11 17:49:24 -040011// AlterConfigsResourceResponse is a response type for alter config resource
khenaidooac637102019-01-14 15:44:34 -050012type AlterConfigsResourceResponse struct {
13 ErrorCode int16
14 ErrorMsg string
15 Type ConfigResourceType
16 Name string
17}
18
Scott Baker8461e152019-10-01 14:44:30 -070019func (a *AlterConfigsResponse) encode(pe packetEncoder) error {
20 pe.putInt32(int32(a.ThrottleTime / time.Millisecond))
khenaidooac637102019-01-14 15:44:34 -050021
Scott Baker8461e152019-10-01 14:44:30 -070022 if err := pe.putArrayLength(len(a.Resources)); err != nil {
khenaidooac637102019-01-14 15:44:34 -050023 return err
24 }
25
khenaidood948f772021-08-11 17:49:24 -040026 for _, v := range a.Resources {
27 if err := v.encode(pe); err != nil {
28 return err
khenaidooac637102019-01-14 15:44:34 -050029 }
30 }
31
32 return nil
33}
34
Scott Baker8461e152019-10-01 14:44:30 -070035func (a *AlterConfigsResponse) decode(pd packetDecoder, version int16) error {
khenaidooac637102019-01-14 15:44:34 -050036 throttleTime, err := pd.getInt32()
37 if err != nil {
38 return err
39 }
Scott Baker8461e152019-10-01 14:44:30 -070040 a.ThrottleTime = time.Duration(throttleTime) * time.Millisecond
khenaidooac637102019-01-14 15:44:34 -050041
42 responseCount, err := pd.getArrayLength()
43 if err != nil {
44 return err
45 }
46
Scott Baker8461e152019-10-01 14:44:30 -070047 a.Resources = make([]*AlterConfigsResourceResponse, responseCount)
khenaidooac637102019-01-14 15:44:34 -050048
Scott Baker8461e152019-10-01 14:44:30 -070049 for i := range a.Resources {
50 a.Resources[i] = new(AlterConfigsResourceResponse)
khenaidooac637102019-01-14 15:44:34 -050051
khenaidood948f772021-08-11 17:49:24 -040052 if err := a.Resources[i].decode(pd, version); err != nil {
khenaidooac637102019-01-14 15:44:34 -050053 return err
54 }
khenaidooac637102019-01-14 15:44:34 -050055 }
56
57 return nil
58}
59
khenaidood948f772021-08-11 17:49:24 -040060func (a *AlterConfigsResourceResponse) encode(pe packetEncoder) error {
61 pe.putInt16(a.ErrorCode)
62 err := pe.putString(a.ErrorMsg)
63 if err != nil {
64 return nil
65 }
66 pe.putInt8(int8(a.Type))
67 err = pe.putString(a.Name)
68 if err != nil {
69 return nil
70 }
71 return nil
72}
73
74func (a *AlterConfigsResourceResponse) decode(pd packetDecoder, version int16) error {
75 errCode, err := pd.getInt16()
76 if err != nil {
77 return err
78 }
79 a.ErrorCode = errCode
80
81 e, err := pd.getString()
82 if err != nil {
83 return err
84 }
85 a.ErrorMsg = e
86
87 t, err := pd.getInt8()
88 if err != nil {
89 return err
90 }
91 a.Type = ConfigResourceType(t)
92
93 name, err := pd.getString()
94 if err != nil {
95 return err
96 }
97 a.Name = name
98
99 return nil
100}
101
Scott Baker8461e152019-10-01 14:44:30 -0700102func (a *AlterConfigsResponse) key() int16 {
khenaidooac637102019-01-14 15:44:34 -0500103 return 32
104}
105
Scott Baker8461e152019-10-01 14:44:30 -0700106func (a *AlterConfigsResponse) version() int16 {
khenaidooac637102019-01-14 15:44:34 -0500107 return 0
108}
109
khenaidood948f772021-08-11 17:49:24 -0400110func (a *AlterConfigsResponse) headerVersion() int16 {
111 return 0
112}
113
Scott Baker8461e152019-10-01 14:44:30 -0700114func (a *AlterConfigsResponse) requiredVersion() KafkaVersion {
khenaidooac637102019-01-14 15:44:34 -0500115 return V0_11_0_0
116}