@@ -902,6 +902,57 @@ public ObservabilityPipelineConfigProcessorItem deserialize(
902902 e );
903903 }
904904
905+ // deserialize ObservabilityPipelineDatadogTagsProcessor
906+ try {
907+ boolean attemptParsing = true ;
908+ // ensure that we respect type coercion as set on the client ObjectMapper
909+ if (ObservabilityPipelineDatadogTagsProcessor .class .equals (Integer .class )
910+ || ObservabilityPipelineDatadogTagsProcessor .class .equals (Long .class )
911+ || ObservabilityPipelineDatadogTagsProcessor .class .equals (Float .class )
912+ || ObservabilityPipelineDatadogTagsProcessor .class .equals (Double .class )
913+ || ObservabilityPipelineDatadogTagsProcessor .class .equals (Boolean .class )
914+ || ObservabilityPipelineDatadogTagsProcessor .class .equals (String .class )) {
915+ attemptParsing = typeCoercion ;
916+ if (!attemptParsing ) {
917+ attemptParsing |=
918+ ((ObservabilityPipelineDatadogTagsProcessor .class .equals (Integer .class )
919+ || ObservabilityPipelineDatadogTagsProcessor .class .equals (Long .class ))
920+ && token == JsonToken .VALUE_NUMBER_INT );
921+ attemptParsing |=
922+ ((ObservabilityPipelineDatadogTagsProcessor .class .equals (Float .class )
923+ || ObservabilityPipelineDatadogTagsProcessor .class .equals (Double .class ))
924+ && (token == JsonToken .VALUE_NUMBER_FLOAT
925+ || token == JsonToken .VALUE_NUMBER_INT ));
926+ attemptParsing |=
927+ (ObservabilityPipelineDatadogTagsProcessor .class .equals (Boolean .class )
928+ && (token == JsonToken .VALUE_FALSE || token == JsonToken .VALUE_TRUE ));
929+ attemptParsing |=
930+ (ObservabilityPipelineDatadogTagsProcessor .class .equals (String .class )
931+ && token == JsonToken .VALUE_STRING );
932+ }
933+ }
934+ if (attemptParsing ) {
935+ tmp =
936+ tree .traverse (jp .getCodec ())
937+ .readValueAs (ObservabilityPipelineDatadogTagsProcessor .class );
938+ // TODO: there is no validation against JSON schema constraints
939+ // (min, max, enum, pattern...), this does not perform a strict JSON
940+ // validation, which means the 'match' count may be higher than it should be.
941+ if (!((ObservabilityPipelineDatadogTagsProcessor ) tmp ).unparsed ) {
942+ deserialized = tmp ;
943+ match ++;
944+ }
945+ log .log (
946+ Level .FINER , "Input data matches schema 'ObservabilityPipelineDatadogTagsProcessor'" );
947+ }
948+ } catch (Exception e ) {
949+ // deserialization failed, continue
950+ log .log (
951+ Level .FINER ,
952+ "Input data does not match schema 'ObservabilityPipelineDatadogTagsProcessor'" ,
953+ e );
954+ }
955+
905956 ObservabilityPipelineConfigProcessorItem ret = new ObservabilityPipelineConfigProcessorItem ();
906957 if (match == 1 ) {
907958 ret .setActualInstance (deserialized );
@@ -1013,6 +1064,11 @@ public ObservabilityPipelineConfigProcessorItem(ObservabilityPipelineThrottlePro
10131064 setActualInstance (o );
10141065 }
10151066
1067+ public ObservabilityPipelineConfigProcessorItem (ObservabilityPipelineDatadogTagsProcessor o ) {
1068+ super ("oneOf" , Boolean .FALSE );
1069+ setActualInstance (o );
1070+ }
1071+
10161072 static {
10171073 schemas .put (
10181074 "ObservabilityPipelineFilterProcessor" ,
@@ -1062,6 +1118,9 @@ public ObservabilityPipelineConfigProcessorItem(ObservabilityPipelineThrottlePro
10621118 schemas .put (
10631119 "ObservabilityPipelineThrottleProcessor" ,
10641120 new GenericType <ObservabilityPipelineThrottleProcessor >() {});
1121+ schemas .put (
1122+ "ObservabilityPipelineDatadogTagsProcessor" ,
1123+ new GenericType <ObservabilityPipelineDatadogTagsProcessor >() {});
10651124 JSON .registerDescendants (
10661125 ObservabilityPipelineConfigProcessorItem .class , Collections .unmodifiableMap (schemas ));
10671126 }
@@ -1081,7 +1140,7 @@ public Map<String, GenericType> getSchemas() {
10811140 * ObservabilityPipelineSensitiveDataScannerProcessor, ObservabilityPipelineOcsfMapperProcessor,
10821141 * ObservabilityPipelineAddEnvVarsProcessor, ObservabilityPipelineDedupeProcessor,
10831142 * ObservabilityPipelineEnrichmentTableProcessor, ObservabilityPipelineReduceProcessor,
1084- * ObservabilityPipelineThrottleProcessor
1143+ * ObservabilityPipelineThrottleProcessor, ObservabilityPipelineDatadogTagsProcessor
10851144 *
10861145 * <p>It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a
10871146 * composed schema (allOf, anyOf, oneOf).
@@ -1170,6 +1229,11 @@ public void setActualInstance(Object instance) {
11701229 super .setActualInstance (instance );
11711230 return ;
11721231 }
1232+ if (JSON .isInstanceOf (
1233+ ObservabilityPipelineDatadogTagsProcessor .class , instance , new HashSet <Class <?>>())) {
1234+ super .setActualInstance (instance );
1235+ return ;
1236+ }
11731237
11741238 if (JSON .isInstanceOf (UnparsedObject .class , instance , new HashSet <Class <?>>())) {
11751239 super .setActualInstance (instance );
@@ -1187,7 +1251,8 @@ public void setActualInstance(Object instance) {
11871251 + " ObservabilityPipelineOcsfMapperProcessor, ObservabilityPipelineAddEnvVarsProcessor,"
11881252 + " ObservabilityPipelineDedupeProcessor,"
11891253 + " ObservabilityPipelineEnrichmentTableProcessor,"
1190- + " ObservabilityPipelineReduceProcessor, ObservabilityPipelineThrottleProcessor" );
1254+ + " ObservabilityPipelineReduceProcessor, ObservabilityPipelineThrottleProcessor,"
1255+ + " ObservabilityPipelineDatadogTagsProcessor" );
11911256 }
11921257
11931258 /**
@@ -1199,7 +1264,7 @@ public void setActualInstance(Object instance) {
11991264 * ObservabilityPipelineSensitiveDataScannerProcessor, ObservabilityPipelineOcsfMapperProcessor,
12001265 * ObservabilityPipelineAddEnvVarsProcessor, ObservabilityPipelineDedupeProcessor,
12011266 * ObservabilityPipelineEnrichmentTableProcessor, ObservabilityPipelineReduceProcessor,
1202- * ObservabilityPipelineThrottleProcessor
1267+ * ObservabilityPipelineThrottleProcessor, ObservabilityPipelineDatadogTagsProcessor
12031268 *
12041269 * @return The actual instance (ObservabilityPipelineFilterProcessor,
12051270 * ObservabilityPipelineParseJSONProcessor, ObservabilityPipelineQuotaProcessor,
@@ -1209,7 +1274,8 @@ public void setActualInstance(Object instance) {
12091274 * ObservabilityPipelineSensitiveDataScannerProcessor,
12101275 * ObservabilityPipelineOcsfMapperProcessor, ObservabilityPipelineAddEnvVarsProcessor,
12111276 * ObservabilityPipelineDedupeProcessor, ObservabilityPipelineEnrichmentTableProcessor,
1212- * ObservabilityPipelineReduceProcessor, ObservabilityPipelineThrottleProcessor)
1277+ * ObservabilityPipelineReduceProcessor, ObservabilityPipelineThrottleProcessor,
1278+ * ObservabilityPipelineDatadogTagsProcessor)
12131279 */
12141280 @ Override
12151281 public Object getActualInstance () {
@@ -1413,4 +1479,16 @@ public ObservabilityPipelineThrottleProcessor getObservabilityPipelineThrottlePr
14131479 throws ClassCastException {
14141480 return (ObservabilityPipelineThrottleProcessor ) super .getActualInstance ();
14151481 }
1482+
1483+ /**
1484+ * Get the actual instance of `ObservabilityPipelineDatadogTagsProcessor`. If the actual instance
1485+ * is not `ObservabilityPipelineDatadogTagsProcessor`, the ClassCastException will be thrown.
1486+ *
1487+ * @return The actual instance of `ObservabilityPipelineDatadogTagsProcessor`
1488+ * @throws ClassCastException if the instance is not `ObservabilityPipelineDatadogTagsProcessor`
1489+ */
1490+ public ObservabilityPipelineDatadogTagsProcessor getObservabilityPipelineDatadogTagsProcessor ()
1491+ throws ClassCastException {
1492+ return (ObservabilityPipelineDatadogTagsProcessor ) super .getActualInstance ();
1493+ }
14161494}
0 commit comments