...
Code Block |
---|
{ "apiKey": 32, "type": "response", "name": "DescribeConfigsResponse", "validVersions": "0-3", <--- Updated Field "flexibleVersions": "none", "fields": [ { "name": "ThrottleTimeMs", "type": "int32", "versions": "0+", "about": "The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota." }, { "name": "Results", "type": "[]DescribeConfigsResult", "versions": "0+", "about": "The results for each resource.", "fields": [ { "name": "ErrorCode", "type": "int16", "versions": "0+", "about": "The error code, or 0 if we were able to successfully describe the configurations." }, { "name": "ErrorMessage", "type": "string", "versions": "0+", "nullableVersions": "0+", "about": "The error message, or null if we were able to successfully describe the configurations." }, { "name": "ResourceType", "type": "int8", "versions": "0+", "about": "The resource type." }, { "name": "ResourceName", "type": "string", "versions": "0+", "about": "The resource name." }, { "name": "Configs", "type": "[]DescribeConfigsResourceResult", "versions": "0+", "about": "Each listed configuration.", "fields": [ { "name": "Name", "type": "string", "versions": "0+", "about": "The configuration name." }, { "name": "Value", "type": "string", "versions": "0+", "nullableVersions": "0+", "about": "The configuration value." }, { "name": "ReadOnly", "type": "bool", "versions": "0+", "about": "True if the configuration is read-only." }, { "name": "IsDefault", "type": "bool", "versions": "0", "about": "True if the configuration is not set." }, // Note: the v0 default for this field that should be exposed to callers is // context-dependent. For example, if the resource is a broker, this should default to 4. // -1 is just a placeholder value. { "name": "ConfigSource", "type": "int8", "versions": "1+", "default": "-1", "ignorable": true, "about": "The configuration source." }, { "name": "IsSensitive", "type": "bool", "versions": "0+", "about": "True if this configuration is sensitive." }, { "name": "Synonyms", "type": "[]DescribeConfigsSynonym", "versions": "1+", "ignorable": true, "about": "The synonyms for this configuration key.", "fields": [ { "name": "Name", "type": "string", "versions": "1+", "about": "The synonym name." }, { "name": "Value", "type": "string", "versions": "1+", "nullableVersions": "0+", "about": "The synonym value." }, { "name": "Source", "type": "int8", "versions": "1+", "about": "The synonym source." } ]}, <--- Start of new Fields { "name": "ConfigValueType", "type": "stringint8", "versions": "3+", "nullableVersionsdefault": "0+"", "ignorable": true, "about": "The configuration data type. Type can be one of the following values - BOOLEAN, STRING, INT, SHORT, LONG, DOUBLE, LIST, CLASS, PASSWORD"}, { "name": "Documentation", "type": "string", "versions": "3+", "nullableVersions": "0+", "about": "The configuration documentation." }, <---- End of new Fields ]} ]} ] } |
...
Under the proposed change, AdminClient.describeConfigs
response (DescribeConfigsResponse.ConfigEntry
) would include following new properties
Type: ConfigType -
Type
enum as defined in ConfigDef.javaThis is an Enum of all the supported data type.
Code Block
...
/** *
...
Data type of configuration entry. */
...
public enum
...
ConfigType {
...
UNKNOWN,
...
...
BOOLEAN, STRING, INT, SHORT, LONG, DOUBLE, LIST, CLASS, PASSWORD }
ConfigType.Unknown
is for ensuring backward compatibility (explained is Compatibility section below)/
The above enum directly maps to the existingType
Enum as defined in ConfigDef.java belowCode Block /** * The config types */ public enum Type { BOOLEAN, STRING, INT, SHORT, LONG, DOUBLE, LIST, CLASS, PASSWORD }
2. Documentation: String
- field's documentation
DescribeConfigsResponse.ConfigEntry
...