blob: 80c773757de88255c95a205f7eea85884ca801e6 [file] [log] [blame]
Jian Liff8b9f92018-06-05 17:36:37 +09001/*
2 * Copyright 2018-present Open Networking Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.openstacktelemetry.api.config;
17
18import java.util.Map;
19
20/**
21 * Configuration API of Kafka for publishing openstack telemetry.
22 */
Jian Li69600e02018-12-24 13:21:18 +090023public interface KafkaTelemetryConfig extends TelemetryConfigProperties {
Jian Liff8b9f92018-06-05 17:36:37 +090024
25 /**
26 * Obtains kafka IP address.
27 *
28 * @return kafka IP address
29 */
30 String address();
31
32 /**
33 * Obtains kafka port number.
34 *
35 * @return kafka port number
36 */
37 int port();
38
39 /**
40 * Obtains numbers of request retries.
41 *
42 * @return number of request retries
43 */
44 int retries();
45
46 /**
47 * Obtains required acknowledgement.
48 *
49 * @return required acknowledgement
50 */
51 String requiredAcks();
52
53 /**
54 * Obtains batch size.
55 *
56 * @return batch size
57 */
58 int batchSize();
59
60 /**
61 * Obtains linger.
62 *
63 * @return linger
64 */
65 int lingerMs();
66
67 /**
68 * Obtains memory buffer size.
69 *
70 * @return memory buffer size
71 */
72 int memoryBuffer();
73
74 /**
75 * Obtains kafka key serializer.
76 *
77 * @return kafka key serializer
78 */
79 String keySerializer();
80
81 /**
82 * Obtains kafka value serializer.
83 *
84 * @return kafka value serializer
85 */
86 String valueSerializer();
87
88 /**
Jian Li69600e02018-12-24 13:21:18 +090089 * Obtains kafka key.
90 *
91 * @return kafka key
92 */
93 String key();
94
95 /**
96 * Obtains kafka topic.
97 *
98 * @return kafka topic
99 */
100 String topic();
101
102 /**
103 * Obtains kafka message codec.
104 *
105 * @return kafka message codec
106 */
107 String codec();
108
109 /**
Jian Liff8b9f92018-06-05 17:36:37 +0900110 * Obtains kafka config maps.
111 *
112 * @return kafka config map
113 */
114 Map<String, Object> configMap();
115
116 /**
117 * Builder class of KafkaTelemetryConfig.
118 */
Jian Li69600e02018-12-24 13:21:18 +0900119 interface Builder extends TelemetryConfigProperties.Builder {
Jian Liff8b9f92018-06-05 17:36:37 +0900120
121 /**
122 * Sets kafka IP address.
123 *
124 * @param address kafka IP address
125 * @return builder instances
126 */
127 Builder withAddress(String address);
128
129 /**
130 * Sets kafka port number.
131 *
132 * @param port kafka port number
133 * @return builder instance
134 */
135 Builder withPort(int port);
136
137 /**
138 * Sets number of request retries.
139 *
140 * @param retries number of request retries
141 * @return builder instance
142 */
143 Builder withRetries(int retries);
144
145 /**
146 * Sets the required acknowledgment.
147 *
148 * @param requiredAcks required acknowledgement
149 * @return builder instance
150 */
151 Builder withRequiredAcks(String requiredAcks);
152
153 /**
154 * Sets batch size.
155 *
156 * @param batchSize batch size
157 * @return builder instance
158 */
159 Builder withBatchSize(int batchSize);
160
161 /**
162 * Sets linger ms.
163 *
164 * @param lingerMs linger ms
165 * @return builder instance
166 */
167 Builder withLingerMs(int lingerMs);
168
169 /**
170 * Sets memory buffer size.
171 *
172 * @param memoryBuffer memory buffer size
173 * @return builder instance
174 */
175 Builder withMemoryBuffer(int memoryBuffer);
176
177 /**
178 * Sets kafka key serializer.
179 *
180 * @param keySerializer kafka key serializer
181 * @return builder instance
182 */
183 Builder withKeySerializer(String keySerializer);
184
185 /**
186 * Sets kafka value serializer.
187 *
188 * @param valueSerializer kafka value serializer
189 * @return builder instance
190 */
191 Builder withValueSerializer(String valueSerializer);
192
193 /**
Jian Li69600e02018-12-24 13:21:18 +0900194 * Sets kafka key.
195 *
196 * @param key kafka key
197 * @return builder instance
198 */
199 Builder withKey(String key);
200
201 /**
202 * Sets kafka topic.
203 *
204 * @param topic kafka topic
205 * @return builder instance
206 */
207 Builder withTopic(String topic);
208
209 /**
210 * Sets kafka message codec.
211 *
212 * @param codec kafka message codec
213 * @return builder instance
214 */
215 Builder withCodec(String codec);
216
217 /**
Jian Liff8b9f92018-06-05 17:36:37 +0900218 * Sets other kafka configuration map.
219 *
220 * @param configMap kafka configuration map
221 * @return builder instance
222 */
223 Builder withConfigMap(Map<String, Object> configMap);
224
225 /**
226 * Creates a kafka telemetry config instance.
227 *
228 * @return kafka telemetry config instance
229 */
230 KafkaTelemetryConfig build();
231 }
Jian Li69600e02018-12-24 13:21:18 +0900232}