@@ -395,6 +395,26 @@ func ResourceDataLossPreventionDiscoveryConfig() *schema.Resource {
395
395
Schema : map [string ]* schema.Schema {},
396
396
},
397
397
},
398
+ "table_reference" : {
399
+ Type : schema .TypeList ,
400
+ Optional : true ,
401
+ Description : `The table to scan. Discovery configurations including this can only include one DiscoveryTarget (the DiscoveryTarget with this TableReference).` ,
402
+ MaxItems : 1 ,
403
+ Elem : & schema.Resource {
404
+ Schema : map [string ]* schema.Schema {
405
+ "dataset_id" : {
406
+ Type : schema .TypeString ,
407
+ Required : true ,
408
+ Description : `Dataset ID of the table.` ,
409
+ },
410
+ "table_id" : {
411
+ Type : schema .TypeString ,
412
+ Required : true ,
413
+ Description : `Name of the table.` ,
414
+ },
415
+ },
416
+ },
417
+ },
398
418
"tables" : {
399
419
Type : schema .TypeList ,
400
420
Optional : true ,
@@ -508,6 +528,36 @@ func ResourceDataLossPreventionDiscoveryConfig() *schema.Resource {
508
528
},
509
529
},
510
530
},
531
+ "database_resource_reference" : {
532
+ Type : schema .TypeList ,
533
+ Optional : true ,
534
+ Description : `The database resource to scan. Targets including this can only include one target (the target with this database resource reference).` ,
535
+ MaxItems : 1 ,
536
+ Elem : & schema.Resource {
537
+ Schema : map [string ]* schema.Schema {
538
+ "database" : {
539
+ Type : schema .TypeString ,
540
+ Required : true ,
541
+ Description : `Required. Name of a database within the instance.` ,
542
+ },
543
+ "database_resource" : {
544
+ Type : schema .TypeString ,
545
+ Required : true ,
546
+ Description : `Required. Name of a database resource, for example, a table within the database.` ,
547
+ },
548
+ "instance" : {
549
+ Type : schema .TypeString ,
550
+ Required : true ,
551
+ Description : `Required. The instance where this resource is located. For example: Cloud SQL instance ID.` ,
552
+ },
553
+ "project_id" : {
554
+ Type : schema .TypeString ,
555
+ Required : true ,
556
+ Description : `Required. If within a project-level config, then this must match the config's project ID.` ,
557
+ },
558
+ },
559
+ },
560
+ },
511
561
"others" : {
512
562
Type : schema .TypeList ,
513
563
Optional : true ,
@@ -601,6 +651,15 @@ func ResourceDataLossPreventionDiscoveryConfig() *schema.Resource {
601
651
},
602
652
},
603
653
},
654
+ "secrets_target" : {
655
+ Type : schema .TypeList ,
656
+ Optional : true ,
657
+ Description : `Discovery target that looks for credentials and secrets stored in cloud resource metadata and reports them as vulnerabilities to Security Command Center. Only one target of this type is allowed.` ,
658
+ MaxItems : 1 ,
659
+ Elem : & schema.Resource {
660
+ Schema : map [string ]* schema.Schema {},
661
+ },
662
+ },
604
663
},
605
664
},
606
665
},
@@ -1265,6 +1324,7 @@ func flattenDataLossPreventionDiscoveryConfigTargets(v interface{}, d *schema.Re
1265
1324
transformed = append (transformed , map [string ]interface {}{
1266
1325
"big_query_target" : flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTarget (original ["bigQueryTarget" ], d , config ),
1267
1326
"cloud_sql_target" : flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTarget (original ["cloudSqlTarget" ], d , config ),
1327
+ "secrets_target" : flattenDataLossPreventionDiscoveryConfigTargetsSecretsTarget (original ["secretsTarget" ], d , config ),
1268
1328
})
1269
1329
}
1270
1330
return transformed
@@ -1301,6 +1361,8 @@ func flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilter(v inter
1301
1361
flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTables (original ["tables" ], d , config )
1302
1362
transformed ["other_tables" ] =
1303
1363
flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterOtherTables (original ["otherTables" ], d , config )
1364
+ transformed ["table_reference" ] =
1365
+ flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReference (original ["tableReference" ], d , config )
1304
1366
return []interface {}{transformed }
1305
1367
}
1306
1368
func flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTables (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
@@ -1369,6 +1431,29 @@ func flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterOtherTab
1369
1431
return []interface {}{transformed }
1370
1432
}
1371
1433
1434
+ func flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReference (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1435
+ if v == nil {
1436
+ return nil
1437
+ }
1438
+ original := v .(map [string ]interface {})
1439
+ if len (original ) == 0 {
1440
+ return nil
1441
+ }
1442
+ transformed := make (map [string ]interface {})
1443
+ transformed ["dataset_id" ] =
1444
+ flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReferenceDatasetId (original ["datasetId" ], d , config )
1445
+ transformed ["table_id" ] =
1446
+ flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReferenceTableId (original ["tableId" ], d , config )
1447
+ return []interface {}{transformed }
1448
+ }
1449
+ func flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReferenceDatasetId (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1450
+ return v
1451
+ }
1452
+
1453
+ func flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReferenceTableId (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1454
+ return v
1455
+ }
1456
+
1372
1457
func flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetConditions (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1373
1458
if v == nil {
1374
1459
return nil
@@ -1550,6 +1635,8 @@ func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilter(v inter
1550
1635
flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterCollection (original ["collection" ], d , config )
1551
1636
transformed ["others" ] =
1552
1637
flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterOthers (original ["others" ], d , config )
1638
+ transformed ["database_resource_reference" ] =
1639
+ flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReference (original ["databaseResourceReference" ], d , config )
1553
1640
return []interface {}{transformed }
1554
1641
}
1555
1642
func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterCollection (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
@@ -1623,6 +1710,41 @@ func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterOthers(v
1623
1710
return []interface {}{transformed }
1624
1711
}
1625
1712
1713
+ func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReference (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1714
+ if v == nil {
1715
+ return nil
1716
+ }
1717
+ original := v .(map [string ]interface {})
1718
+ if len (original ) == 0 {
1719
+ return nil
1720
+ }
1721
+ transformed := make (map [string ]interface {})
1722
+ transformed ["project_id" ] =
1723
+ flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceProjectId (original ["projectId" ], d , config )
1724
+ transformed ["instance" ] =
1725
+ flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceInstance (original ["instance" ], d , config )
1726
+ transformed ["database" ] =
1727
+ flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceDatabase (original ["database" ], d , config )
1728
+ transformed ["database_resource" ] =
1729
+ flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceDatabaseResource (original ["databaseResource" ], d , config )
1730
+ return []interface {}{transformed }
1731
+ }
1732
+ func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceProjectId (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1733
+ return v
1734
+ }
1735
+
1736
+ func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceInstance (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1737
+ return v
1738
+ }
1739
+
1740
+ func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceDatabase (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1741
+ return v
1742
+ }
1743
+
1744
+ func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceDatabaseResource (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1745
+ return v
1746
+ }
1747
+
1626
1748
func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetConditions (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1627
1749
if v == nil {
1628
1750
return nil
@@ -1696,6 +1818,14 @@ func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetDisabled(v int
1696
1818
return []interface {}{transformed }
1697
1819
}
1698
1820
1821
+ func flattenDataLossPreventionDiscoveryConfigTargetsSecretsTarget (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1822
+ if v == nil {
1823
+ return nil
1824
+ }
1825
+ transformed := make (map [string ]interface {})
1826
+ return []interface {}{transformed }
1827
+ }
1828
+
1699
1829
func flattenDataLossPreventionDiscoveryConfigErrors (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1700
1830
if v == nil {
1701
1831
return v
@@ -2104,6 +2234,13 @@ func expandDataLossPreventionDiscoveryConfigTargets(v interface{}, d tpgresource
2104
2234
transformed ["cloudSqlTarget" ] = transformedCloudSqlTarget
2105
2235
}
2106
2236
2237
+ transformedSecretsTarget , err := expandDataLossPreventionDiscoveryConfigTargetsSecretsTarget (original ["secrets_target" ], d , config )
2238
+ if err != nil {
2239
+ return nil , err
2240
+ } else {
2241
+ transformed ["secretsTarget" ] = transformedSecretsTarget
2242
+ }
2243
+
2107
2244
req = append (req , transformed )
2108
2245
}
2109
2246
return req , nil
@@ -2172,6 +2309,13 @@ func expandDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilter(v interf
2172
2309
transformed ["otherTables" ] = transformedOtherTables
2173
2310
}
2174
2311
2312
+ transformedTableReference , err := expandDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReference (original ["table_reference" ], d , config )
2313
+ if err != nil {
2314
+ return nil , err
2315
+ } else if val := reflect .ValueOf (transformedTableReference ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2316
+ transformed ["tableReference" ] = transformedTableReference
2317
+ }
2318
+
2175
2319
return transformed , nil
2176
2320
}
2177
2321
@@ -2276,6 +2420,40 @@ func expandDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterOtherTabl
2276
2420
return transformed , nil
2277
2421
}
2278
2422
2423
+ func expandDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReference (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2424
+ l := v .([]interface {})
2425
+ if len (l ) == 0 || l [0 ] == nil {
2426
+ return nil , nil
2427
+ }
2428
+ raw := l [0 ]
2429
+ original := raw .(map [string ]interface {})
2430
+ transformed := make (map [string ]interface {})
2431
+
2432
+ transformedDatasetId , err := expandDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReferenceDatasetId (original ["dataset_id" ], d , config )
2433
+ if err != nil {
2434
+ return nil , err
2435
+ } else if val := reflect .ValueOf (transformedDatasetId ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2436
+ transformed ["datasetId" ] = transformedDatasetId
2437
+ }
2438
+
2439
+ transformedTableId , err := expandDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReferenceTableId (original ["table_id" ], d , config )
2440
+ if err != nil {
2441
+ return nil , err
2442
+ } else if val := reflect .ValueOf (transformedTableId ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2443
+ transformed ["tableId" ] = transformedTableId
2444
+ }
2445
+
2446
+ return transformed , nil
2447
+ }
2448
+
2449
+ func expandDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReferenceDatasetId (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2450
+ return v , nil
2451
+ }
2452
+
2453
+ func expandDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReferenceTableId (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2454
+ return v , nil
2455
+ }
2456
+
2279
2457
func expandDataLossPreventionDiscoveryConfigTargetsBigQueryTargetConditions (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2280
2458
l := v .([]interface {})
2281
2459
if len (l ) == 0 || l [0 ] == nil {
@@ -2553,6 +2731,13 @@ func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilter(v interf
2553
2731
transformed ["others" ] = transformedOthers
2554
2732
}
2555
2733
2734
+ transformedDatabaseResourceReference , err := expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReference (original ["database_resource_reference" ], d , config )
2735
+ if err != nil {
2736
+ return nil , err
2737
+ } else if val := reflect .ValueOf (transformedDatabaseResourceReference ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2738
+ transformed ["databaseResourceReference" ] = transformedDatabaseResourceReference
2739
+ }
2740
+
2556
2741
return transformed , nil
2557
2742
}
2558
2743
@@ -2668,6 +2853,62 @@ func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterOthers(v
2668
2853
return transformed , nil
2669
2854
}
2670
2855
2856
+ func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReference (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2857
+ l := v .([]interface {})
2858
+ if len (l ) == 0 || l [0 ] == nil {
2859
+ return nil , nil
2860
+ }
2861
+ raw := l [0 ]
2862
+ original := raw .(map [string ]interface {})
2863
+ transformed := make (map [string ]interface {})
2864
+
2865
+ transformedProjectId , err := expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceProjectId (original ["project_id" ], d , config )
2866
+ if err != nil {
2867
+ return nil , err
2868
+ } else if val := reflect .ValueOf (transformedProjectId ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2869
+ transformed ["projectId" ] = transformedProjectId
2870
+ }
2871
+
2872
+ transformedInstance , err := expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceInstance (original ["instance" ], d , config )
2873
+ if err != nil {
2874
+ return nil , err
2875
+ } else if val := reflect .ValueOf (transformedInstance ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2876
+ transformed ["instance" ] = transformedInstance
2877
+ }
2878
+
2879
+ transformedDatabase , err := expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceDatabase (original ["database" ], d , config )
2880
+ if err != nil {
2881
+ return nil , err
2882
+ } else if val := reflect .ValueOf (transformedDatabase ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2883
+ transformed ["database" ] = transformedDatabase
2884
+ }
2885
+
2886
+ transformedDatabaseResource , err := expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceDatabaseResource (original ["database_resource" ], d , config )
2887
+ if err != nil {
2888
+ return nil , err
2889
+ } else if val := reflect .ValueOf (transformedDatabaseResource ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2890
+ transformed ["databaseResource" ] = transformedDatabaseResource
2891
+ }
2892
+
2893
+ return transformed , nil
2894
+ }
2895
+
2896
+ func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceProjectId (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2897
+ return v , nil
2898
+ }
2899
+
2900
+ func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceInstance (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2901
+ return v , nil
2902
+ }
2903
+
2904
+ func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceDatabase (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2905
+ return v , nil
2906
+ }
2907
+
2908
+ func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReferenceDatabaseResource (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2909
+ return v , nil
2910
+ }
2911
+
2671
2912
func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetConditions (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2672
2913
l := v .([]interface {})
2673
2914
if len (l ) == 0 || l [0 ] == nil {
@@ -2781,6 +3022,21 @@ func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetDisabled(v inte
2781
3022
return transformed , nil
2782
3023
}
2783
3024
3025
+ func expandDataLossPreventionDiscoveryConfigTargetsSecretsTarget (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
3026
+ l := v .([]interface {})
3027
+ if len (l ) == 0 {
3028
+ return nil , nil
3029
+ }
3030
+
3031
+ if l [0 ] == nil {
3032
+ transformed := make (map [string ]interface {})
3033
+ return transformed , nil
3034
+ }
3035
+ transformed := make (map [string ]interface {})
3036
+
3037
+ return transformed , nil
3038
+ }
3039
+
2784
3040
func expandDataLossPreventionDiscoveryConfigStatus (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2785
3041
return v , nil
2786
3042
}
0 commit comments