@@ -268,6 +268,10 @@ class ProtobufSerializer(BaseSerializer):
268268 | ``normalize.schemas`` | bool | transform schemas to have a consistent format, |
269269 | | | including ordering properties and references. |
270270 +-------------------------------------+----------+------------------------------------------------------+
271+ | | | Whether to use the given schema ID for |
272+ | ``use.schema.id`` | int | serialization. |
273+ | | | |
274+ +-----------------------------------------+----------+--------------------------------------------------+
271275 | | | Whether to use the latest subject version for |
272276 | ``use.latest.version`` | bool | serialization. |
273277 | | | |
@@ -278,7 +282,7 @@ class ProtobufSerializer(BaseSerializer):
278282 | | | Defaults to False. |
279283 +-------------------------------------+----------+------------------------------------------------------+
280284 | | | Whether to use the latest subject version with |
281- | ``use.latest.with.metadata`` | bool | the given metadata. |
285+ | ``use.latest.with.metadata`` | dict | the given metadata. |
282286 | | | |
283287 | | | WARNING: There is no check that the latest |
284288 | | | schema is backwards compatible with the object |
@@ -362,6 +366,7 @@ class ProtobufSerializer(BaseSerializer):
362366 _default_conf = {
363367 'auto.register.schemas' : True ,
364368 'normalize.schemas' : False ,
369+ 'use.schema.id' : None ,
365370 'use.latest.version' : False ,
366371 'use.latest.with.metadata' : None ,
367372 'skip.known.types' : True ,
@@ -399,6 +404,11 @@ def __init__(
399404 if not isinstance (self ._normalize_schemas , bool ):
400405 raise ValueError ("normalize.schemas must be a boolean value" )
401406
407+ self ._use_schema_id = conf_copy .pop ('use.schema.id' )
408+ if (self ._use_schema_id is not None and
409+ not isinstance (self ._use_schema_id , int )):
410+ raise ValueError ("use.schema.id must be an int value" )
411+
402412 self ._use_latest_version = conf_copy .pop ('use.latest.version' )
403413 if not isinstance (self ._use_latest_version , bool ):
404414 raise ValueError ("use.latest.version must be a boolean value" )
@@ -634,7 +644,7 @@ class ProtobufDeserializer(BaseDeserializer):
634644 | | | Defaults to False. |
635645 +-------------------------------------+----------+------------------------------------------------------+
636646 | | | Whether to use the latest subject version with |
637- | ``use.latest.with.metadata`` | bool | the given metadata. |
647+ | ``use.latest.with.metadata`` | dict | the given metadata. |
638648 | | | |
639649 | | | Defaults to None. |
640650 +-------------------------------------+----------+------------------------------------------------------+
@@ -686,6 +696,7 @@ def __init__(
686696 self ._registry = schema_registry_client
687697 self ._rule_registry = rule_registry if rule_registry else RuleRegistry .get_global_instance ()
688698 self ._parsed_schemas = ParsedSchemaCache ()
699+ self ._use_schema_id = None
689700
690701 # Require use.deprecated.format to be explicitly configured
691702 # during a transitionary period since old/new format are
0 commit comments