diff --git a/templates/tools/run_tests/sources_and_headers.json.template b/templates/tools/run_tests/sources_and_headers.json.template
index 07559828dc49a5ff9086f4b44ba13fdf559dc7d3..1c5c9747d65ce7a69190c78135d26faaf00bd65c 100644
--- a/templates/tools/run_tests/sources_and_headers.json.template
+++ b/templates/tools/run_tests/sources_and_headers.json.template
@@ -37,6 +37,7 @@
 
   ${json.dumps([{"name": tgt.name,
                  "type": typ,
+                 "is_filegroup": False,
                  "language": tgt.language,
                  "third_party": tgt.boringssl or tgt.zlib,
                  "src": sorted(
@@ -50,5 +51,22 @@
                  "deps": sorted(tgt.get('deps', []) +
                                 tgt.get('uses', []) +
                                 tgt.get('filegroups', []))}
-                for typ, tgt in all_targets(targets, libs, filegroups)],
+                for typ, tgt in all_targets(targets, libs, [])] +
+                [{"name": tgt.name,
+                 "type": typ,
+                 "is_filegroup": True,
+                 "language": tgt.language,
+                 "third_party": tgt.boringssl or tgt.zlib,
+                 "src": sorted(
+                     filter_srcs(tgt.own_src, (no_protos_filter, no_third_party_filter)) +
+                     filter_srcs(tgt.own_public_headers, (no_protos_filter, no_third_party_filter)) +
+                     filter_srcs(tgt.own_headers, (no_third_party_filter,))),
+                 "headers": sorted(
+                     tgt.own_public_headers +
+                     tgt.own_headers +
+                     proto_headers(tgt.own_src)),
+                 "deps": sorted(tgt.get('deps', []) +
+                                tgt.get('uses', []) +
+                                tgt.get('filegroups', []))}
+                for typ, tgt in all_targets([], [], filegroups)],
                sort_keys=True, indent=2)}
diff --git a/tools/run_tests/sanity/check_sources_and_headers.py b/tools/run_tests/sanity/check_sources_and_headers.py
index 524640942e3adab561dd5a38dc4238ca114ffe92..6ac6086eaa7ebc2f38b7eaace3a424733266c723 100755
--- a/tools/run_tests/sanity/check_sources_and_headers.py
+++ b/tools/run_tests/sanity/check_sources_and_headers.py
@@ -74,14 +74,14 @@ for target in js:
       for line in src:
         m = re_inc1.match(line)
         if m:
-          if not target_has_header(target, m.group(1)):
+          if not target_has_header(target, m.group(1)) and not target['is_filegroup']:
             print (
               'target %s (%s) does not name header %s as a dependency' % (
                 target['name'], fn, m.group(1)))
             errors += 1
         m = re_inc2.match(line)
         if m:
-          if not target_has_header(target, 'include/' + m.group(1)):
+          if not target_has_header(target, 'include/' + m.group(1)) and not target['is_filegroup']:
             print (
               'target %s (%s) does not name header %s as a dependency' % (
                 target['name'], fn, m.group(1)))
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 1741e7b63711ea9d9ec2f0c8bced0276b29ce745..a0db9bbb34b03ef1df80b49408c68b2a472e67a3 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -9,6 +9,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "alarm_test", 
     "src": [
@@ -25,6 +26,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "algorithm_test", 
     "src": [
@@ -39,6 +41,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "alloc_test", 
     "src": [
@@ -55,6 +58,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "alpn_test", 
     "src": [
@@ -71,6 +75,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "api_fuzzer", 
     "src": [
@@ -88,6 +93,7 @@
       "test_tcp_server"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "bad_server_response_test", 
     "src": [
@@ -102,6 +108,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "bin_decoder_test", 
     "src": [
@@ -116,6 +123,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "bin_encoder_test", 
     "src": [
@@ -132,6 +140,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "census_context_test", 
     "src": [
@@ -148,6 +157,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "channel_create_test", 
     "src": [
@@ -164,6 +174,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "chttp2_hpack_encoder_test", 
     "src": [
@@ -180,6 +191,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "chttp2_status_conversion_test", 
     "src": [
@@ -196,6 +208,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "chttp2_stream_map_test", 
     "src": [
@@ -212,6 +225,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "chttp2_varint_test", 
     "src": [
@@ -228,6 +242,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "client_fuzzer", 
     "src": [
@@ -244,6 +259,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "compression_test", 
     "src": [
@@ -260,6 +276,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "concurrent_connectivity_test", 
     "src": [
@@ -276,6 +293,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "dns_resolver_connectivity_test", 
     "src": [
@@ -292,6 +310,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "dns_resolver_test", 
     "src": [
@@ -308,6 +327,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "dualstack_socket_test", 
     "src": [
@@ -324,6 +344,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "endpoint_pair_test", 
     "src": [
@@ -340,6 +361,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "ev_epoll_linux_test", 
     "src": [
@@ -356,6 +378,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "fd_conservation_posix_test", 
     "src": [
@@ -372,6 +395,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "fd_posix_test", 
     "src": [
@@ -388,6 +412,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "fling_client", 
     "src": [
@@ -404,6 +429,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "fling_server", 
     "src": [
@@ -420,6 +446,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "fling_stream_test", 
     "src": [
@@ -436,6 +463,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "fling_test", 
     "src": [
@@ -450,6 +478,7 @@
       "grpc"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gen_hpack_tables", 
     "src": [
@@ -461,6 +490,7 @@
   {
     "deps": [], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gen_legal_metadata_characters", 
     "src": [
@@ -477,6 +507,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "goaway_server_test", 
     "src": [
@@ -491,6 +522,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_avl_test", 
     "src": [
@@ -505,6 +537,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_backoff_test", 
     "src": [
@@ -519,6 +552,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_cmdline_test", 
     "src": [
@@ -533,6 +567,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_cpu_test", 
     "src": [
@@ -547,6 +582,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_env_test", 
     "src": [
@@ -561,6 +597,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_histogram_test", 
     "src": [
@@ -575,6 +612,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_host_port_test", 
     "src": [
@@ -589,6 +627,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_log_test", 
     "src": [
@@ -603,6 +642,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_slice_buffer_test", 
     "src": [
@@ -617,6 +657,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_slice_test", 
     "src": [
@@ -631,6 +672,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_stack_lockfree_test", 
     "src": [
@@ -645,6 +687,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_string_test", 
     "src": [
@@ -659,6 +702,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_sync_test", 
     "src": [
@@ -673,6 +717,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_thd_test", 
     "src": [
@@ -687,6 +732,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_time_test", 
     "src": [
@@ -701,6 +747,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_tls_test", 
     "src": [
@@ -715,6 +762,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_useful_test", 
     "src": [
@@ -731,6 +779,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_auth_context_test", 
     "src": [
@@ -747,6 +796,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_b64_test", 
     "src": [
@@ -763,6 +813,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_byte_buffer_reader_test", 
     "src": [
@@ -779,6 +830,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_channel_args_test", 
     "src": [
@@ -795,6 +847,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_channel_stack_test", 
     "src": [
@@ -811,6 +864,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_completion_queue_test", 
     "src": [
@@ -825,6 +879,7 @@
       "grpc"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_create_jwt", 
     "src": [
@@ -841,6 +896,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_credentials_test", 
     "src": [
@@ -857,6 +913,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_fetch_oauth2", 
     "src": [
@@ -873,6 +930,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_invalid_channel_args_test", 
     "src": [
@@ -889,6 +947,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_json_token_test", 
     "src": [
@@ -905,6 +964,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_jwt_verifier_test", 
     "src": [
@@ -919,6 +979,7 @@
       "grpc"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_print_google_default_creds_token", 
     "src": [
@@ -935,6 +996,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_security_connector_test", 
     "src": [
@@ -949,6 +1011,7 @@
       "grpc"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_verify_jwt", 
     "src": [
@@ -965,6 +1028,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "hpack_parser_fuzzer_test", 
     "src": [
@@ -981,6 +1045,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "hpack_parser_test", 
     "src": [
@@ -997,6 +1062,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "hpack_table_test", 
     "src": [
@@ -1013,6 +1079,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "http_parser_test", 
     "src": [
@@ -1029,6 +1096,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "http_request_fuzzer_test", 
     "src": [
@@ -1045,6 +1113,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "http_response_fuzzer_test", 
     "src": [
@@ -1061,6 +1130,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "httpcli_format_request_test", 
     "src": [
@@ -1077,6 +1147,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "httpcli_test", 
     "src": [
@@ -1093,6 +1164,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "httpscli_test", 
     "src": [
@@ -1109,6 +1181,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "init_test", 
     "src": [
@@ -1125,6 +1198,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "internal_api_canary_iomgr_test", 
     "src": [
@@ -1141,6 +1215,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "internal_api_canary_support_test", 
     "src": [
@@ -1157,6 +1232,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "internal_api_canary_transport_test", 
     "src": [
@@ -1173,6 +1249,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "invalid_call_argument_test", 
     "src": [
@@ -1189,6 +1266,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "json_fuzzer_test", 
     "src": [
@@ -1203,6 +1281,7 @@
       "grpc"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "json_rewrite", 
     "src": [
@@ -1219,6 +1298,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "json_rewrite_test", 
     "src": [
@@ -1235,6 +1315,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "json_stream_error_test", 
     "src": [
@@ -1251,6 +1332,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "json_test", 
     "src": [
@@ -1267,6 +1349,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "lame_client_test", 
     "src": [
@@ -1283,6 +1366,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "lb_policies_test", 
     "src": [
@@ -1299,6 +1383,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "load_file_test", 
     "src": [
@@ -1315,6 +1400,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "low_level_ping_pong_benchmark", 
     "src": [
@@ -1331,6 +1417,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "message_compress_test", 
     "src": [
@@ -1347,6 +1434,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "mlog_test", 
     "src": [
@@ -1363,6 +1451,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "multiple_server_queues_test", 
     "src": [
@@ -1377,6 +1466,7 @@
       "gpr_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "murmur_hash_test", 
     "src": [
@@ -1393,6 +1483,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "nanopb_fuzzer_response_test", 
     "src": [
@@ -1409,6 +1500,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "nanopb_fuzzer_serverlist_test", 
     "src": [
@@ -1425,6 +1517,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "no_server_test", 
     "src": [
@@ -1441,6 +1534,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "resolve_address_test", 
     "src": [
@@ -1457,6 +1551,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "secure_channel_create_test", 
     "src": [
@@ -1473,6 +1568,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "secure_endpoint_test", 
     "src": [
@@ -1489,6 +1585,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "sequential_connectivity_test", 
     "src": [
@@ -1505,6 +1602,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "server_chttp2_test", 
     "src": [
@@ -1521,6 +1619,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "server_fuzzer", 
     "src": [
@@ -1537,6 +1636,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "server_test", 
     "src": [
@@ -1554,6 +1654,7 @@
       "test_tcp_server"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "set_initial_connect_string_test", 
     "src": [
@@ -1570,6 +1671,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "sockaddr_resolver_test", 
     "src": [
@@ -1586,6 +1688,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "sockaddr_utils_test", 
     "src": [
@@ -1602,6 +1705,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "socket_utils_test", 
     "src": [
@@ -1618,6 +1722,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "tcp_client_posix_test", 
     "src": [
@@ -1634,6 +1739,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "tcp_posix_test", 
     "src": [
@@ -1650,6 +1756,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "tcp_server_posix_test", 
     "src": [
@@ -1666,6 +1773,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "time_averaged_stats_test", 
     "src": [
@@ -1682,6 +1790,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "timeout_encoding_test", 
     "src": [
@@ -1698,6 +1807,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "timer_heap_test", 
     "src": [
@@ -1714,6 +1824,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "timer_list_test", 
     "src": [
@@ -1730,6 +1841,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "transport_connectivity_state_test", 
     "src": [
@@ -1746,6 +1858,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "transport_metadata_test", 
     "src": [
@@ -1762,6 +1875,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "transport_security_test", 
     "src": [
@@ -1778,6 +1892,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "udp_server_test", 
     "src": [
@@ -1794,6 +1909,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "uri_fuzzer_test", 
     "src": [
@@ -1810,6 +1926,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "uri_parser_test", 
     "src": [
@@ -1828,6 +1945,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "alarm_cpp_test", 
     "src": [
@@ -1846,6 +1964,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "async_end2end_test", 
     "src": [
@@ -1864,6 +1983,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "auth_property_iterator_test", 
     "src": [
@@ -1879,6 +1999,7 @@
       "grpc++"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "channel_arguments_test", 
     "src": [
@@ -1898,6 +2019,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "cli_call_test", 
     "src": [
@@ -1916,6 +2038,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "client_crash_test", 
     "src": [
@@ -1934,6 +2057,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "client_crash_test_server", 
     "src": [
@@ -1961,6 +2085,7 @@
       "src/proto/grpc/testing/stats.grpc.pb.h", 
       "src/proto/grpc/testing/stats.pb.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "codegen_test_full", 
     "src": [
@@ -1986,6 +2111,7 @@
       "src/proto/grpc/testing/stats.grpc.pb.h", 
       "src/proto/grpc/testing/stats.pb.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "codegen_test_minimal", 
     "src": [
@@ -2001,6 +2127,7 @@
       "grpc++"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "credentials_test", 
     "src": [
@@ -2018,6 +2145,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "cxx_byte_buffer_test", 
     "src": [
@@ -2035,6 +2163,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "cxx_slice_test", 
     "src": [
@@ -2048,6 +2177,7 @@
       "grpc++"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "cxx_string_ref_test", 
     "src": [
@@ -2065,6 +2195,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "cxx_time_test", 
     "src": [
@@ -2083,6 +2214,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "end2end_test", 
     "src": [
@@ -2101,6 +2233,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "generic_end2end_test", 
     "src": [
@@ -2119,6 +2252,7 @@
       "src/proto/grpc/testing/compiler_test.grpc.pb.h", 
       "src/proto/grpc/testing/compiler_test.pb.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "golden_file_test", 
     "src": [
@@ -2139,6 +2273,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc_cli", 
     "src": [
@@ -2152,6 +2287,7 @@
       "grpc_plugin_support"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc_cpp_plugin", 
     "src": [
@@ -2165,6 +2301,7 @@
       "grpc_plugin_support"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc_csharp_plugin", 
     "src": [
@@ -2178,6 +2315,7 @@
       "grpc_plugin_support"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc_node_plugin", 
     "src": [
@@ -2191,6 +2329,7 @@
       "grpc_plugin_support"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc_objective_c_plugin", 
     "src": [
@@ -2204,6 +2343,7 @@
       "grpc_plugin_support"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc_python_plugin", 
     "src": [
@@ -2217,6 +2357,7 @@
       "grpc_plugin_support"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc_ruby_plugin", 
     "src": [
@@ -2236,6 +2377,7 @@
       "src/proto/grpc/lb/v1/load_balancer.grpc.pb.h", 
       "src/proto/grpc/lb/v1/load_balancer.pb.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpclb_api_test", 
     "src": [
@@ -2254,6 +2396,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "hybrid_end2end_test", 
     "src": [
@@ -2275,6 +2418,7 @@
       "interop_client_main"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "interop_client", 
     "src": [], 
@@ -2294,6 +2438,7 @@
       "interop_server_main"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "interop_server", 
     "src": [], 
@@ -2308,6 +2453,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "interop_test", 
     "src": [
@@ -2327,6 +2473,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "json_run_localhost", 
     "src": [
@@ -2347,6 +2494,7 @@
       "src/proto/grpc/testing/metrics.pb.h", 
       "test/cpp/util/metrics_server.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "metrics_client", 
     "src": [
@@ -2366,6 +2514,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "mock_test", 
     "src": [
@@ -2387,6 +2536,7 @@
     "headers": [
       "test/cpp/util/proto_reflection_descriptor_database.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "proto_server_reflection_test", 
     "src": [
@@ -2408,6 +2558,7 @@
       "qps"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "qps_interarrival_test", 
     "src": [
@@ -2428,6 +2579,7 @@
       "qps"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "qps_json_driver", 
     "src": [
@@ -2448,6 +2600,7 @@
       "qps"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "qps_openloop_test", 
     "src": [
@@ -2471,6 +2624,7 @@
       "test/cpp/qps/client.h", 
       "test/cpp/qps/server.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "qps_worker", 
     "src": [
@@ -2499,6 +2653,7 @@
       "src/proto/grpc/testing/test.grpc.pb.h", 
       "src/proto/grpc/testing/test.pb.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "reconnect_interop_client", 
     "src": [
@@ -2527,6 +2682,7 @@
       "src/proto/grpc/testing/test.grpc.pb.h", 
       "src/proto/grpc/testing/test.pb.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "reconnect_interop_server", 
     "src": [
@@ -2545,6 +2701,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "secure_auth_context_test", 
     "src": [
@@ -2564,6 +2721,7 @@
       "qps"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "secure_sync_unary_ping_pong_test", 
     "src": [
@@ -2582,6 +2740,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "server_builder_plugin_test", 
     "src": [
@@ -2600,6 +2759,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "server_crash_test", 
     "src": [
@@ -2618,6 +2778,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "server_crash_test_client", 
     "src": [
@@ -2636,6 +2797,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "shutdown_test", 
     "src": [
@@ -2653,6 +2815,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "status_test", 
     "src": [
@@ -2671,6 +2834,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "streaming_throughput_test", 
     "src": [
@@ -2703,6 +2867,7 @@
       "test/cpp/interop/stress_interop_client.h", 
       "test/cpp/util/metrics_server.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "stress_test", 
     "src": [
@@ -2728,6 +2893,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "thread_stress_test", 
     "src": [
@@ -2742,6 +2908,7 @@
       "grpc"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c89", 
     "name": "public_headers_must_be_c89", 
     "src": [
@@ -2757,6 +2924,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_aes_test", 
     "src": [], 
@@ -2770,6 +2938,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_asn1_test", 
     "src": [], 
@@ -2783,6 +2952,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_base64_test", 
     "src": [], 
@@ -2796,6 +2966,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_bio_test", 
     "src": [], 
@@ -2809,6 +2980,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_bn_test", 
     "src": [], 
@@ -2822,6 +2994,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_bytestring_test", 
     "src": [], 
@@ -2835,6 +3008,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_aead_test", 
     "src": [], 
@@ -2848,6 +3022,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_cipher_test", 
     "src": [], 
@@ -2861,6 +3036,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_cmac_test", 
     "src": [], 
@@ -2874,6 +3050,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_constant_time_test", 
     "src": [], 
@@ -2887,6 +3064,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_ed25519_test", 
     "src": [], 
@@ -2900,6 +3078,7 @@
       "boringssl_x25519_test_lib"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_x25519_test", 
     "src": [], 
@@ -2913,6 +3092,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_dh_test", 
     "src": [], 
@@ -2926,6 +3106,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_digest_test", 
     "src": [], 
@@ -2939,6 +3120,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_dsa_test", 
     "src": [], 
@@ -2952,6 +3134,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_ec_test", 
     "src": [], 
@@ -2965,6 +3148,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_example_mul", 
     "src": [], 
@@ -2978,6 +3162,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_ecdsa_test", 
     "src": [], 
@@ -2991,6 +3176,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_err_test", 
     "src": [], 
@@ -3004,6 +3190,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_evp_extra_test", 
     "src": [], 
@@ -3017,6 +3204,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_evp_test", 
     "src": [], 
@@ -3030,6 +3218,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_pbkdf_test", 
     "src": [], 
@@ -3043,6 +3232,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_hkdf_test", 
     "src": [], 
@@ -3056,6 +3246,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_hmac_test", 
     "src": [], 
@@ -3069,6 +3260,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_lhash_test", 
     "src": [], 
@@ -3082,6 +3274,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_gcm_test", 
     "src": [], 
@@ -3095,6 +3288,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_pkcs12_test", 
     "src": [], 
@@ -3108,6 +3302,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_pkcs8_test", 
     "src": [], 
@@ -3121,6 +3316,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_poly1305_test", 
     "src": [], 
@@ -3134,6 +3330,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_refcount_test", 
     "src": [], 
@@ -3147,6 +3344,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_rsa_test", 
     "src": [], 
@@ -3160,6 +3358,7 @@
       "boringssl_thread_test_lib"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_thread_test", 
     "src": [], 
@@ -3173,6 +3372,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_pkcs7_test", 
     "src": [], 
@@ -3186,6 +3386,7 @@
       "boringssl_x509_test_lib"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_x509_test", 
     "src": [], 
@@ -3199,6 +3400,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_tab_test", 
     "src": [], 
@@ -3212,6 +3414,7 @@
       "boringssl_v3name_test_lib"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_v3name_test", 
     "src": [], 
@@ -3225,6 +3428,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_pqueue_test", 
     "src": [], 
@@ -3238,6 +3442,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_ssl_test", 
     "src": [], 
@@ -3253,6 +3458,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "badreq_bad_client_test", 
     "src": [
@@ -3270,6 +3476,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "connection_prefix_bad_client_test", 
     "src": [
@@ -3287,6 +3494,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "head_of_line_blocking_bad_client_test", 
     "src": [
@@ -3304,6 +3512,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "headers_bad_client_test", 
     "src": [
@@ -3321,6 +3530,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "initial_settings_frame_bad_client_test", 
     "src": [
@@ -3338,6 +3548,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "large_metadata_bad_client_test", 
     "src": [
@@ -3355,6 +3566,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "server_registered_method_bad_client_test", 
     "src": [
@@ -3372,6 +3584,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "simple_request_bad_client_test", 
     "src": [
@@ -3389,6 +3602,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "unknown_frame_bad_client_test", 
     "src": [
@@ -3406,6 +3620,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "window_overflow_bad_client_test", 
     "src": [
@@ -3423,6 +3638,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "bad_ssl_cert_server", 
     "src": [
@@ -3439,6 +3655,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "bad_ssl_cert_test", 
     "src": [
@@ -3456,6 +3673,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_census_test", 
     "src": [
@@ -3473,6 +3691,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_compress_test", 
     "src": [
@@ -3490,6 +3709,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_fakesec_test", 
     "src": [
@@ -3507,6 +3727,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_fd_test", 
     "src": [
@@ -3524,6 +3745,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_full_test", 
     "src": [
@@ -3541,6 +3763,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_full+pipe_test", 
     "src": [
@@ -3558,6 +3781,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_full+trace_test", 
     "src": [
@@ -3575,6 +3799,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_loadreporting_test", 
     "src": [
@@ -3592,6 +3817,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_oauth2_test", 
     "src": [
@@ -3609,6 +3835,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_proxy_test", 
     "src": [
@@ -3626,6 +3853,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_sockpair_test", 
     "src": [
@@ -3643,6 +3871,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_sockpair+trace_test", 
     "src": [
@@ -3660,6 +3889,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_test", 
     "src": [
@@ -3677,6 +3907,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_ssl_test", 
     "src": [
@@ -3694,6 +3925,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_ssl_cert_test", 
     "src": [
@@ -3711,6 +3943,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_ssl_proxy_test", 
     "src": [
@@ -3728,6 +3961,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_uds_test", 
     "src": [
@@ -3745,6 +3979,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_census_nosec_test", 
     "src": [
@@ -3762,6 +3997,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_compress_nosec_test", 
     "src": [
@@ -3779,6 +4015,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_fd_nosec_test", 
     "src": [
@@ -3796,6 +4033,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_full_nosec_test", 
     "src": [
@@ -3813,6 +4051,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_full+pipe_nosec_test", 
     "src": [
@@ -3830,6 +4069,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_full+trace_nosec_test", 
     "src": [
@@ -3847,6 +4087,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_loadreporting_nosec_test", 
     "src": [
@@ -3864,6 +4105,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_proxy_nosec_test", 
     "src": [
@@ -3881,6 +4123,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_sockpair_nosec_test", 
     "src": [
@@ -3898,6 +4141,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_sockpair+trace_nosec_test", 
     "src": [
@@ -3915,6 +4159,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
     "src": [
@@ -3932,6 +4177,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "h2_uds_nosec_test", 
     "src": [
@@ -3948,6 +4194,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "api_fuzzer_one_entry", 
     "src": [
@@ -3965,6 +4212,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "client_fuzzer_one_entry", 
     "src": [
@@ -3982,6 +4230,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "src": [
@@ -3999,6 +4248,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "http_request_fuzzer_test_one_entry", 
     "src": [
@@ -4016,6 +4266,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "http_response_fuzzer_test_one_entry", 
     "src": [
@@ -4033,6 +4284,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "json_fuzzer_test_one_entry", 
     "src": [
@@ -4050,6 +4302,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "src": [
@@ -4067,6 +4320,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "src": [
@@ -4084,6 +4338,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "server_fuzzer_one_entry", 
     "src": [
@@ -4101,6 +4356,7 @@
       "grpc_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "uri_fuzzer_test_one_entry", 
     "src": [
@@ -4115,6 +4371,7 @@
       "gpr_base"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr", 
     "src": [], 
@@ -4128,6 +4385,7 @@
     "headers": [
       "test/core/util/test_config.h"
     ], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "gpr_test_util", 
     "src": [
@@ -4155,6 +4413,7 @@
       "grpc_transport_chttp2_server_secure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc", 
     "src": [
@@ -4171,6 +4430,7 @@
       "grpc_transport_cronet_client_secure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_cronet", 
     "src": [
@@ -4185,6 +4445,7 @@
       "grpc"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_dll", 
     "src": [], 
@@ -4202,6 +4463,7 @@
       "test/core/end2end/data/ssl_test_data.h", 
       "test/core/security/oauth2_utils.h"
     ], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_test_util", 
     "src": [
@@ -4225,6 +4487,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_test_util_unsecure", 
     "src": [], 
@@ -4246,6 +4509,7 @@
       "grpc_transport_chttp2_server_insecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "grpc_unsecure", 
     "src": [
@@ -4266,6 +4530,7 @@
     "headers": [
       "test/core/util/reconnect_server.h"
     ], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "reconnect_server", 
     "src": [
@@ -4285,6 +4550,7 @@
     "headers": [
       "test/core/util/test_tcp_server.h"
     ], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "test_tcp_server", 
     "src": [
@@ -4307,6 +4573,7 @@
       "src/cpp/common/secure_auth_context.h", 
       "src/cpp/server/secure_server_credentials.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc++", 
     "src": [
@@ -4337,6 +4604,7 @@
       "include/grpc++/ext/reflection.pb.h", 
       "src/cpp/ext/proto_server_reflection.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc++_reflection", 
     "src": [
@@ -4357,6 +4625,7 @@
     "headers": [
       "test/cpp/util/test_config.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc++_test_config", 
     "src": [
@@ -4389,6 +4658,7 @@
       "test/cpp/util/subprocess.h", 
       "test/cpp/util/test_credentials_provider.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc++_test_util", 
     "src": [
@@ -4417,6 +4687,7 @@
       "grpc_unsecure"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc++_unsecure", 
     "src": [
@@ -4436,6 +4707,7 @@
       "test/cpp/util/cli_call.h", 
       "test/cpp/util/proto_file_parser.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc_cli_libs", 
     "src": [
@@ -4468,6 +4740,7 @@
       "src/compiler/ruby_generator_map-inl.h", 
       "src/compiler/ruby_generator_string-inl.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc_plugin_support", 
     "src": [
@@ -4509,6 +4782,7 @@
       "src/proto/grpc/testing/messages.pb.h", 
       "test/cpp/interop/client_helper.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "interop_client_helper", 
     "src": [
@@ -4538,6 +4812,7 @@
       "src/proto/grpc/testing/test.pb.h", 
       "test/cpp/interop/interop_client.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "interop_client_main", 
     "src": [
@@ -4558,6 +4833,7 @@
     "headers": [
       "test/cpp/interop/server_helper.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "interop_server_helper", 
     "src": [
@@ -4586,6 +4862,7 @@
       "src/proto/grpc/testing/test.grpc.pb.h", 
       "src/proto/grpc/testing/test.pb.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "interop_server_main", 
     "src": [
@@ -4624,6 +4901,7 @@
       "test/cpp/qps/usage_timer.h", 
       "test/cpp/util/benchmark_config.h"
     ], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "qps", 
     "src": [
@@ -4660,6 +4938,7 @@
       "grpc"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "csharp", 
     "name": "grpc_csharp_ext", 
     "src": [
@@ -4779,6 +5058,7 @@
       "third_party/boringssl/ssl/test/scoped_types.h", 
       "third_party/boringssl/ssl/test/test_config.h"
     ], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl", 
     "src": [
@@ -4790,6 +5070,7 @@
   {
     "deps": [], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_test_util", 
     "src": [], 
@@ -4802,6 +5083,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_aes_test_lib", 
     "src": [], 
@@ -4814,6 +5096,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_asn1_test_lib", 
     "src": [], 
@@ -4826,6 +5109,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_base64_test_lib", 
     "src": [], 
@@ -4838,6 +5122,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_bio_test_lib", 
     "src": [], 
@@ -4850,6 +5135,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_bn_test_lib", 
     "src": [], 
@@ -4862,6 +5148,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_bytestring_test_lib", 
     "src": [], 
@@ -4874,6 +5161,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_aead_test_lib", 
     "src": [], 
@@ -4886,6 +5174,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_cipher_test_lib", 
     "src": [], 
@@ -4898,6 +5187,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_cmac_test_lib", 
     "src": [], 
@@ -4910,6 +5200,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl_constant_time_test_lib", 
     "src": [], 
@@ -4922,6 +5213,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_ed25519_test_lib", 
     "src": [], 
@@ -4934,6 +5226,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_x25519_test_lib", 
     "src": [], 
@@ -4946,6 +5239,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_dh_test_lib", 
     "src": [], 
@@ -4958,6 +5252,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_digest_test_lib", 
     "src": [], 
@@ -4970,6 +5265,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl_dsa_test_lib", 
     "src": [], 
@@ -4982,6 +5278,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_ec_test_lib", 
     "src": [], 
@@ -4994,6 +5291,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl_example_mul_lib", 
     "src": [], 
@@ -5006,6 +5304,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_ecdsa_test_lib", 
     "src": [], 
@@ -5018,6 +5317,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_err_test_lib", 
     "src": [], 
@@ -5030,6 +5330,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_evp_extra_test_lib", 
     "src": [], 
@@ -5042,6 +5343,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_evp_test_lib", 
     "src": [], 
@@ -5054,6 +5356,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_pbkdf_test_lib", 
     "src": [], 
@@ -5066,6 +5369,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl_hkdf_test_lib", 
     "src": [], 
@@ -5078,6 +5382,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_hmac_test_lib", 
     "src": [], 
@@ -5090,6 +5395,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl_lhash_test_lib", 
     "src": [], 
@@ -5102,6 +5408,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl_gcm_test_lib", 
     "src": [], 
@@ -5114,6 +5421,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_pkcs12_test_lib", 
     "src": [], 
@@ -5126,6 +5434,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_pkcs8_test_lib", 
     "src": [], 
@@ -5138,6 +5447,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_poly1305_test_lib", 
     "src": [], 
@@ -5150,6 +5460,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl_refcount_test_lib", 
     "src": [], 
@@ -5162,6 +5473,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_rsa_test_lib", 
     "src": [], 
@@ -5174,6 +5486,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl_thread_test_lib", 
     "src": [], 
@@ -5186,6 +5499,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl_pkcs7_test_lib", 
     "src": [], 
@@ -5198,6 +5512,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_x509_test_lib", 
     "src": [], 
@@ -5210,6 +5525,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl_tab_test_lib", 
     "src": [], 
@@ -5222,6 +5538,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl_v3name_test_lib", 
     "src": [], 
@@ -5234,6 +5551,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "boringssl_pqueue_test_lib", 
     "src": [], 
@@ -5246,6 +5564,7 @@
       "boringssl_test_util"
     ], 
     "headers": [], 
+    "is_filegroup": false, 
     "language": "c++", 
     "name": "boringssl_ssl_test_lib", 
     "src": [], 
@@ -5267,6 +5586,7 @@
       "third_party/zlib/zlib.h", 
       "third_party/zlib/zutil.h"
     ], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "z", 
     "src": [], 
@@ -5283,6 +5603,7 @@
     "headers": [
       "test/core/bad_client/bad_client.h"
     ], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "bad_client_test", 
     "src": [
@@ -5302,6 +5623,7 @@
     "headers": [
       "test/core/bad_ssl/server_common.h"
     ], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "bad_ssl_test_server", 
     "src": [
@@ -5322,6 +5644,7 @@
       "test/core/end2end/end2end_tests.h", 
       "test/core/end2end/tests/cancel_test_helpers.h"
     ], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "end2end_tests", 
     "src": [
@@ -5383,6 +5706,7 @@
       "test/core/end2end/end2end_tests.h", 
       "test/core/end2end/tests/cancel_test_helpers.h"
     ], 
+    "is_filegroup": false, 
     "language": "c", 
     "name": "end2end_nosec_tests", 
     "src": [
@@ -5448,6 +5772,7 @@
       "src/core/ext/census/mlog.h", 
       "src/core/ext/census/rpc_metric_id.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "census", 
     "src": [
@@ -5518,6 +5843,7 @@
       "src/core/lib/support/time_precise.h", 
       "src/core/lib/support/tmpfile.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "gpr_base", 
     "src": [
@@ -5627,6 +5953,7 @@
       "include/grpc/impl/codegen/sync_windows.h", 
       "include/grpc/impl/codegen/time.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "gpr_codegen", 
     "src": [
@@ -5740,6 +6067,7 @@
       "src/core/lib/transport/transport.h", 
       "src/core/lib/transport/transport_impl.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_base", 
     "src": [
@@ -5942,6 +6270,7 @@
       "src/core/ext/client_config/subchannel_index.h", 
       "src/core/ext/client_config/uri_parser.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_client_config", 
     "src": [
@@ -5997,6 +6326,7 @@
       "include/grpc/impl/codegen/propagation_bits.h", 
       "include/grpc/impl/codegen/status.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_codegen", 
     "src": [
@@ -6022,6 +6352,7 @@
       "src/core/ext/lb_policy/grpclb/load_balancer_api.h", 
       "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_lb_policy_grpclb", 
     "src": [
@@ -6040,6 +6371,7 @@
       "grpc_client_config"
     ], 
     "headers": [], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_lb_policy_pick_first", 
     "src": [
@@ -6055,6 +6387,7 @@
       "grpc_client_config"
     ], 
     "headers": [], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_lb_policy_round_robin", 
     "src": [
@@ -6072,6 +6405,7 @@
       "src/core/ext/load_reporting/load_reporting.h", 
       "src/core/ext/load_reporting/load_reporting_filter.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_load_reporting", 
     "src": [
@@ -6090,6 +6424,7 @@
       "grpc_client_config"
     ], 
     "headers": [], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_resolver_dns_native", 
     "src": [
@@ -6105,6 +6440,7 @@
       "grpc_client_config"
     ], 
     "headers": [], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_resolver_sockaddr", 
     "src": [
@@ -6142,6 +6478,7 @@
       "src/core/lib/security/util/b64.h", 
       "src/core/lib/security/util/json_util.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_secure", 
     "src": [
@@ -6212,6 +6549,7 @@
       "test/core/util/port_server_client.h", 
       "test/core/util/slice_splitter.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_test_util_base", 
     "src": [
@@ -6271,6 +6609,7 @@
       "src/core/ext/transport/chttp2/transport/timeout_encoding.h", 
       "src/core/ext/transport/chttp2/transport/varint.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_transport_chttp2", 
     "src": [
@@ -6328,6 +6667,7 @@
     "headers": [
       "src/core/ext/transport/chttp2/alpn/alpn.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_transport_chttp2_alpn", 
     "src": [
@@ -6345,6 +6685,7 @@
       "grpc_transport_chttp2"
     ], 
     "headers": [], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_transport_chttp2_client_insecure", 
     "src": [
@@ -6363,6 +6704,7 @@
       "grpc_transport_chttp2"
     ], 
     "headers": [], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_transport_chttp2_client_secure", 
     "src": [
@@ -6378,6 +6720,7 @@
       "grpc_transport_chttp2"
     ], 
     "headers": [], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_transport_chttp2_server_insecure", 
     "src": [
@@ -6395,6 +6738,7 @@
       "grpc_transport_chttp2"
     ], 
     "headers": [], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_transport_chttp2_server_secure", 
     "src": [
@@ -6414,6 +6758,7 @@
       "include/grpc/grpc_security_constants.h", 
       "third_party/objective_c/Cronet/cronet_c_for_grpc.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "grpc_transport_cronet_client_secure", 
     "src": [
@@ -6435,6 +6780,7 @@
       "third_party/nanopb/pb_decode.h", 
       "third_party/nanopb/pb_encode.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "nanopb", 
     "src": [], 
@@ -6452,6 +6798,7 @@
       "src/core/lib/tsi/transport_security.h", 
       "src/core/lib/tsi/transport_security_interface.h"
     ], 
+    "is_filegroup": true, 
     "language": "c", 
     "name": "tsi", 
     "src": [
@@ -6523,6 +6870,7 @@
       "src/cpp/server/dynamic_thread_pool.h", 
       "src/cpp/server/thread_pool_interface.h"
     ], 
+    "is_filegroup": true, 
     "language": "c++", 
     "name": "grpc++_base", 
     "src": [
@@ -6640,6 +6988,7 @@
       "include/grpc++/impl/codegen/sync_stream.h", 
       "include/grpc++/impl/codegen/time.h"
     ], 
+    "is_filegroup": true, 
     "language": "c++", 
     "name": "grpc++_codegen_base", 
     "src": [
@@ -6682,6 +7031,7 @@
       "grpc++_codegen_base"
     ], 
     "headers": [], 
+    "is_filegroup": true, 
     "language": "c++", 
     "name": "grpc++_codegen_base_src", 
     "src": [
@@ -6698,6 +7048,7 @@
     "headers": [
       "include/grpc++/impl/codegen/proto_utils.h"
     ], 
+    "is_filegroup": true, 
     "language": "c++", 
     "name": "grpc++_codegen_proto", 
     "src": [
@@ -6711,6 +7062,7 @@
     "headers": [
       "include/grpc++/impl/codegen/config_protobuf.h"
     ], 
+    "is_filegroup": true, 
     "language": "c++", 
     "name": "grpc++_config_proto", 
     "src": [