@@ -116,12 +116,49 @@ public enum UuidBsonFormat {
116116 private static final String DOCUMENT_ID_STRATEGY_UUID_FORMAT_DISPLAY =
117117 "The document id strategy uuid format" ;
118118 private static final String DOCUMENT_ID_STRATEGY_UUID_FORMAT_DOC =
119- "The bson output format when using the `UuidStrategy`." ;
119+ "The bson output format when using the `UuidStrategy`. " + "Either `String` or `Binary`. " ;
120120 private static final String DOCUMENT_ID_STRATEGY_UUID_FORMAT_DEFAULT = "string" ;
121121
122+ public static final String DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_TYPE_CONFIG =
123+ "document.id.strategy.partial.key.projection.type" ;
124+ private static final String DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_TYPE_DISPLAY =
125+ "The document id strategy key projection" ;
126+ private static final String DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_TYPE_DOC =
127+ "For use with the `PartialKeyStrategy` allows custom key fields to be projected for the id strategy "
128+ + "Use either `AllowList` or `BlockList`." ;
129+ private static final String DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_TYPE_DEFAULT = "" ;
130+
131+ public static final String DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_LIST_CONFIG =
132+ "document.id.strategy.partial.key.projection.list" ;
133+ private static final String DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_LIST_DISPLAY =
134+ "The document id strategy key projection list" ;
135+ private static final String DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_LIST_DOC =
136+ "For use with the `PartialKeyStrategy` allows custom key fields to be projected for the id strategy. "
137+ + "A comma separated list of field names for key projection." ;
138+ private static final String DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_LIST_DEFAULT = "" ;
139+
140+ public static final String DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_TYPE_CONFIG =
141+ "document.id.strategy.partial.value.projection.type" ;
142+ private static final String DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_TYPE_DISPLAY =
143+ "The document id strategy value projection" ;
144+ private static final String DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_TYPE_DOC =
145+ "For use with the `PartialValueStrategy` allows custom value fields to be projected for the id strategy. "
146+ + "Use either `AllowList` or `BlockList`." ;
147+ private static final String DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_TYPE_DEFAULT = "" ;
148+
149+ public static final String DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_LIST_CONFIG =
150+ "document.id.strategy.partial.value.projection.list" ;
151+ private static final String DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_LIST_DISPLAY =
152+ "The document id strategy value projection list" ;
153+ private static final String DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_LIST_DOC =
154+ "For use with the `PartialValueStrategy` allows custom value fields to be projected for the id strategy. "
155+ + "A comma separated list of field names for value projection." ;
156+ private static final String DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_LIST_DEFAULT = "" ;
157+
122158 public static final String KEY_PROJECTION_TYPE_CONFIG = "key.projection.type" ;
123159 private static final String KEY_PROJECTION_TYPE_DISPLAY = "The key projection type" ;
124- private static final String KEY_PROJECTION_TYPE_DOC = "The type of key projection to use" ;
160+ private static final String KEY_PROJECTION_TYPE_DOC =
161+ "The type of key projection to use " + "Use either `AllowList` or `BlockList`." ;
125162 private static final String KEY_PROJECTION_TYPE_DEFAULT = "none" ;
126163
127164 public static final String KEY_PROJECTION_LIST_CONFIG = "key.projection.list" ;
@@ -131,7 +168,8 @@ public enum UuidBsonFormat {
131168 private static final String KEY_PROJECTION_LIST_DEFAULT = "" ;
132169
133170 public static final String VALUE_PROJECTION_TYPE_CONFIG = "value.projection.type" ;
134- private static final String VALUE_PROJECTION_TYPE_DISPLAY = "The type of value projection to use" ;
171+ private static final String VALUE_PROJECTION_TYPE_DISPLAY =
172+ "The type of value projection to use " + "Use either `AllowList` or `BlockList`." ;
135173 private static final String VALUE_PROJECTION_TYPE_DOC = "The type of value projection to use" ;
136174 private static final String VALUE_PROJECTION_TYPE_DEFAULT = "none" ;
137175
@@ -703,6 +741,58 @@ private static ConfigDef createConfigDef() {
703741 DOCUMENT_ID_STRATEGY_UUID_FORMAT_DISPLAY ,
704742 Validators .EnumValidatorAndRecommender .in (UuidBsonFormat .values ()));
705743
744+ configDef .define (
745+ DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_TYPE_CONFIG ,
746+ ConfigDef .Type .STRING ,
747+ DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_TYPE_DEFAULT ,
748+ Validators .emptyString ()
749+ .or (Validators .EnumValidatorAndRecommender .in (FieldProjectionType .values ())),
750+ ConfigDef .Importance .LOW ,
751+ DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_TYPE_DOC ,
752+ group ,
753+ ++orderInGroup ,
754+ ConfigDef .Width .MEDIUM ,
755+ DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_TYPE_DISPLAY ,
756+ Validators .EnumValidatorAndRecommender .in (FieldProjectionType .values ()));
757+
758+ configDef .define (
759+ DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_LIST_CONFIG ,
760+ ConfigDef .Type .STRING ,
761+ DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_LIST_DEFAULT ,
762+ ConfigDef .Importance .LOW ,
763+ DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_LIST_DOC ,
764+ group ,
765+ ++orderInGroup ,
766+ ConfigDef .Width .MEDIUM ,
767+ DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_LIST_DISPLAY ,
768+ singletonList (DOCUMENT_ID_STRATEGY_PARTIAL_KEY_PROJECTION_TYPE_CONFIG ));
769+
770+ configDef .define (
771+ DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_TYPE_CONFIG ,
772+ ConfigDef .Type .STRING ,
773+ DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_TYPE_DEFAULT ,
774+ Validators .emptyString ()
775+ .or (Validators .EnumValidatorAndRecommender .in (FieldProjectionType .values ())),
776+ ConfigDef .Importance .LOW ,
777+ DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_TYPE_DOC ,
778+ group ,
779+ ++orderInGroup ,
780+ ConfigDef .Width .MEDIUM ,
781+ DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_TYPE_DISPLAY ,
782+ Validators .EnumValidatorAndRecommender .in (FieldProjectionType .values ()));
783+
784+ configDef .define (
785+ DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_LIST_CONFIG ,
786+ ConfigDef .Type .STRING ,
787+ DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_LIST_DEFAULT ,
788+ ConfigDef .Importance .LOW ,
789+ DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_LIST_DOC ,
790+ group ,
791+ ++orderInGroup ,
792+ ConfigDef .Width .MEDIUM ,
793+ DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_LIST_DISPLAY ,
794+ singletonList (DOCUMENT_ID_STRATEGY_PARTIAL_VALUE_PROJECTION_TYPE_CONFIG ));
795+
706796 group = "Change Data Capture" ;
707797 orderInGroup = 0 ;
708798 configDef .define (
0 commit comments