@@ -1729,18 +1729,7 @@ def validate_input(self):
17291729 "choices" : ["MULTI_SELECT" , "MULTI_SELECT_TREE" , "SINGLE_SELECT_ARRAY" , "TIME_RANGE" ],
17301730 },
17311731 "value" : {
1732- "type" : "list" ,
1733- "elements" : "dict" ,
1734- "value" : {"type" : "str" , "required" : False },
1735- "display_value" : {"type" : "str" , "required" : False },
1736- "start_date_time" : {"type" : "str" , "required" : False },
1737- "end_date_time" : {"type" : "str" , "required" : False },
1738- "time_zone" : {"type" : "str" , "required" : False },
1739- "time_range_option" : {
1740- "type" : "str" ,
1741- "required" : False ,
1742- "choices" : ["CUSTOM" , "LAST_7_DAYS" , "LAST_24_HOURS" , "LAST_3_HOURS" ]
1743- },
1732+ "type" : "raw" ,
17441733 "required" : False
17451734 },
17461735 },
@@ -3603,6 +3592,40 @@ def _prepare_report_payload(self, report_entry):
36033592 if "viewName" in view_data :
36043593 view_data ["name" ] = view_data .pop ("viewName" )
36053594
3595+ if "view" in report_payload and "filters" in report_payload ["view" ]:
3596+ fixed_filters = []
3597+ for flt in report_payload ["view" ]["filters" ]:
3598+
3599+ # ensure camelCase fields exist
3600+ flt ["displayName" ] = flt .get ("displayName" , flt .get ("name" ))
3601+ flt ["type" ] = flt .get ("type" , flt .get ("filterType" ))
3602+
3603+ # Normalize value entries
3604+ new_values = []
3605+ raw_values = flt .get ("value" , [])
3606+
3607+ # TIME_RANGE uses dict, not list → keep as is
3608+ if isinstance (raw_values , dict ):
3609+ new_values = raw_values
3610+ else :
3611+ for v in raw_values :
3612+ if isinstance (v , dict ):
3613+ new_values .append ({
3614+ "value" : v .get ("value" ),
3615+ "displayValue" : v .get ("displayValue" , v .get ("value" ))
3616+ })
3617+ else :
3618+ # simple value like "Global"
3619+ new_values .append ({
3620+ "value" : v ,
3621+ "displayValue" : v
3622+ })
3623+
3624+ flt ["value" ] = new_values
3625+
3626+ fixed_filters .append (flt )
3627+ report_payload ["view" ]["filters" ] = fixed_filters
3628+
36063629 self .log (
36073630 "Prepared API payload for report '{0}'" .format (report_entry .get ("name" )),
36083631 "DEBUG"
0 commit comments