blob: 8b94b1f3fe4061cf7e544283ed29741cdde1d0a9 [file] [log] [blame]
khenaidooac637102019-01-14 15:44:34 -05001package sarama
2
khenaidood948f772021-08-11 17:49:24 -04003// AlterConfigsRequest is an alter config request type
khenaidooac637102019-01-14 15:44:34 -05004type AlterConfigsRequest struct {
5 Resources []*AlterConfigsResource
6 ValidateOnly bool
7}
8
khenaidood948f772021-08-11 17:49:24 -04009// AlterConfigsResource is an alter config resource type
khenaidooac637102019-01-14 15:44:34 -050010type AlterConfigsResource struct {
11 Type ConfigResourceType
12 Name string
13 ConfigEntries map[string]*string
14}
15
Scott Baker8461e152019-10-01 14:44:30 -070016func (a *AlterConfigsRequest) encode(pe packetEncoder) error {
17 if err := pe.putArrayLength(len(a.Resources)); err != nil {
khenaidooac637102019-01-14 15:44:34 -050018 return err
19 }
20
Scott Baker8461e152019-10-01 14:44:30 -070021 for _, r := range a.Resources {
khenaidooac637102019-01-14 15:44:34 -050022 if err := r.encode(pe); err != nil {
23 return err
24 }
25 }
26
Scott Baker8461e152019-10-01 14:44:30 -070027 pe.putBool(a.ValidateOnly)
khenaidooac637102019-01-14 15:44:34 -050028 return nil
29}
30
Scott Baker8461e152019-10-01 14:44:30 -070031func (a *AlterConfigsRequest) decode(pd packetDecoder, version int16) error {
khenaidooac637102019-01-14 15:44:34 -050032 resourceCount, err := pd.getArrayLength()
33 if err != nil {
34 return err
35 }
36
Scott Baker8461e152019-10-01 14:44:30 -070037 a.Resources = make([]*AlterConfigsResource, resourceCount)
38 for i := range a.Resources {
khenaidooac637102019-01-14 15:44:34 -050039 r := &AlterConfigsResource{}
40 err = r.decode(pd, version)
41 if err != nil {
42 return err
43 }
Scott Baker8461e152019-10-01 14:44:30 -070044 a.Resources[i] = r
khenaidooac637102019-01-14 15:44:34 -050045 }
46
47 validateOnly, err := pd.getBool()
48 if err != nil {
49 return err
50 }
51
Scott Baker8461e152019-10-01 14:44:30 -070052 a.ValidateOnly = validateOnly
khenaidooac637102019-01-14 15:44:34 -050053
54 return nil
55}
56
Scott Baker8461e152019-10-01 14:44:30 -070057func (a *AlterConfigsResource) encode(pe packetEncoder) error {
58 pe.putInt8(int8(a.Type))
khenaidooac637102019-01-14 15:44:34 -050059
Scott Baker8461e152019-10-01 14:44:30 -070060 if err := pe.putString(a.Name); err != nil {
khenaidooac637102019-01-14 15:44:34 -050061 return err
62 }
63
Scott Baker8461e152019-10-01 14:44:30 -070064 if err := pe.putArrayLength(len(a.ConfigEntries)); err != nil {
khenaidooac637102019-01-14 15:44:34 -050065 return err
66 }
Scott Baker8461e152019-10-01 14:44:30 -070067 for configKey, configValue := range a.ConfigEntries {
khenaidooac637102019-01-14 15:44:34 -050068 if err := pe.putString(configKey); err != nil {
69 return err
70 }
71 if err := pe.putNullableString(configValue); err != nil {
72 return err
73 }
74 }
75
76 return nil
77}
78
Scott Baker8461e152019-10-01 14:44:30 -070079func (a *AlterConfigsResource) decode(pd packetDecoder, version int16) error {
khenaidooac637102019-01-14 15:44:34 -050080 t, err := pd.getInt8()
81 if err != nil {
82 return err
83 }
Scott Baker8461e152019-10-01 14:44:30 -070084 a.Type = ConfigResourceType(t)
khenaidooac637102019-01-14 15:44:34 -050085
86 name, err := pd.getString()
87 if err != nil {
88 return err
89 }
Scott Baker8461e152019-10-01 14:44:30 -070090 a.Name = name
khenaidooac637102019-01-14 15:44:34 -050091
92 n, err := pd.getArrayLength()
93 if err != nil {
94 return err
95 }
96
97 if n > 0 {
Scott Baker8461e152019-10-01 14:44:30 -070098 a.ConfigEntries = make(map[string]*string, n)
khenaidooac637102019-01-14 15:44:34 -050099 for i := 0; i < n; i++ {
100 configKey, err := pd.getString()
101 if err != nil {
102 return err
103 }
Scott Baker8461e152019-10-01 14:44:30 -0700104 if a.ConfigEntries[configKey], err = pd.getNullableString(); err != nil {
khenaidooac637102019-01-14 15:44:34 -0500105 return err
106 }
107 }
108 }
109 return err
110}
111
Scott Baker8461e152019-10-01 14:44:30 -0700112func (a *AlterConfigsRequest) key() int16 {
khenaidooac637102019-01-14 15:44:34 -0500113 return 33
114}
115
Scott Baker8461e152019-10-01 14:44:30 -0700116func (a *AlterConfigsRequest) version() int16 {
khenaidooac637102019-01-14 15:44:34 -0500117 return 0
118}
119
khenaidood948f772021-08-11 17:49:24 -0400120func (a *AlterConfigsRequest) headerVersion() int16 {
121 return 1
122}
123
Scott Baker8461e152019-10-01 14:44:30 -0700124func (a *AlterConfigsRequest) requiredVersion() KafkaVersion {
khenaidooac637102019-01-14 15:44:34 -0500125 return V0_11_0_0
126}