Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

MetadataRequest must also be modified. Topic name will be left in to allow requests to be made either by topic name or topic ID. Requests should only use one or the other.

ID will be checked first, but if the value is the default zero UUID, topic name will be used instead.  If an ID is specified and the ID does not exist, the request will fail regardless of allow_auto_topic_creation. 
If the topic ID is not found, the request will return an UNKNOWN_TOPIC_ID error indicating the topic ID did not exist. The check for the topic ID will occur before checking authorization on the topic. Thus, existence of a given topic ID is not considered sensitive information. If name and ID are included, but the name does not match the ID, the request will also fail with an UNKNOWN_TOPIC_ID error.

MetadataRequest v10

Metadata Request (Version: 10) => [topics] allow_auto_topic_creation include_cluster_authorized_operations include_topic_authorized_operations
    topics => name topic_id*
      name => STRING (nullable)*
      topic_id* => UUID
    allow_auto_topic_creation => BOOL
    include_cluster_authorized_operations => BOOL
    include_topic_authorized_operations => BOOL

...

Like the MetadataRequst, ID will be checked first, but if the value is the default zero UUID, topic name will be used instead. If an ID is specified and the ID does not exist, the request will fail.
If name and ID are included, but the name does not match the ID, the request will also fail.

DeleteTopicsResponse v6

DeleteTopics Response (Version: 6) => throttle_time_ms [responses]
    throttle_time_ms => INT32
    responses => name topic_id* error_code error_message
      name => STRING
      topic_id* => UUID
      error_code => INT16
      error_message => STRING

Even in the cases where Although only topic ID or only topic name are included in the request, if topic Ids are supported, the response will contain both the name and the ID.

...