@@ -395,6 +395,26 @@ func ResourceDataLossPreventionDiscoveryConfig() *schema.Resource {
395395 Schema : map [string ]* schema.Schema {},
396396 },
397397 },
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+ },
398418 "tables" : {
399419 Type : schema .TypeList ,
400420 Optional : true ,
@@ -508,6 +528,36 @@ func ResourceDataLossPreventionDiscoveryConfig() *schema.Resource {
508528 },
509529 },
510530 },
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+ },
511561 "others" : {
512562 Type : schema .TypeList ,
513563 Optional : true ,
@@ -601,6 +651,15 @@ func ResourceDataLossPreventionDiscoveryConfig() *schema.Resource {
601651 },
602652 },
603653 },
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+ },
604663 },
605664 },
606665 },
@@ -1265,6 +1324,7 @@ func flattenDataLossPreventionDiscoveryConfigTargets(v interface{}, d *schema.Re
12651324 transformed = append (transformed , map [string ]interface {}{
12661325 "big_query_target" : flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTarget (original ["bigQueryTarget" ], d , config ),
12671326 "cloud_sql_target" : flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTarget (original ["cloudSqlTarget" ], d , config ),
1327+ "secrets_target" : flattenDataLossPreventionDiscoveryConfigTargetsSecretsTarget (original ["secretsTarget" ], d , config ),
12681328 })
12691329 }
12701330 return transformed
@@ -1301,6 +1361,8 @@ func flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilter(v inter
13011361 flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTables (original ["tables" ], d , config )
13021362 transformed ["other_tables" ] =
13031363 flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterOtherTables (original ["otherTables" ], d , config )
1364+ transformed ["table_reference" ] =
1365+ flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTableReference (original ["tableReference" ], d , config )
13041366 return []interface {}{transformed }
13051367}
13061368func flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterTables (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
@@ -1369,6 +1431,29 @@ func flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterOtherTab
13691431 return []interface {}{transformed }
13701432}
13711433
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+
13721457func flattenDataLossPreventionDiscoveryConfigTargetsBigQueryTargetConditions (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
13731458 if v == nil {
13741459 return nil
@@ -1550,6 +1635,8 @@ func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilter(v inter
15501635 flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterCollection (original ["collection" ], d , config )
15511636 transformed ["others" ] =
15521637 flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterOthers (original ["others" ], d , config )
1638+ transformed ["database_resource_reference" ] =
1639+ flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterDatabaseResourceReference (original ["databaseResourceReference" ], d , config )
15531640 return []interface {}{transformed }
15541641}
15551642func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterCollection (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
@@ -1623,6 +1710,41 @@ func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterOthers(v
16231710 return []interface {}{transformed }
16241711}
16251712
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+
16261748func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetConditions (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
16271749 if v == nil {
16281750 return nil
@@ -1696,6 +1818,14 @@ func flattenDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetDisabled(v int
16961818 return []interface {}{transformed }
16971819}
16981820
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+
16991829func flattenDataLossPreventionDiscoveryConfigErrors (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
17001830 if v == nil {
17011831 return v
@@ -2104,6 +2234,13 @@ func expandDataLossPreventionDiscoveryConfigTargets(v interface{}, d tpgresource
21042234 transformed ["cloudSqlTarget" ] = transformedCloudSqlTarget
21052235 }
21062236
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+
21072244 req = append (req , transformed )
21082245 }
21092246 return req , nil
@@ -2172,6 +2309,13 @@ func expandDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilter(v interf
21722309 transformed ["otherTables" ] = transformedOtherTables
21732310 }
21742311
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+
21752319 return transformed , nil
21762320}
21772321
@@ -2276,6 +2420,40 @@ func expandDataLossPreventionDiscoveryConfigTargetsBigQueryTargetFilterOtherTabl
22762420 return transformed , nil
22772421}
22782422
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+
22792457func expandDataLossPreventionDiscoveryConfigTargetsBigQueryTargetConditions (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
22802458 l := v .([]interface {})
22812459 if len (l ) == 0 || l [0 ] == nil {
@@ -2553,6 +2731,13 @@ func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilter(v interf
25532731 transformed ["others" ] = transformedOthers
25542732 }
25552733
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+
25562741 return transformed , nil
25572742}
25582743
@@ -2668,6 +2853,62 @@ func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetFilterOthers(v
26682853 return transformed , nil
26692854}
26702855
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+
26712912func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetConditions (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
26722913 l := v .([]interface {})
26732914 if len (l ) == 0 || l [0 ] == nil {
@@ -2781,6 +3022,21 @@ func expandDataLossPreventionDiscoveryConfigTargetsCloudSqlTargetDisabled(v inte
27813022 return transformed , nil
27823023}
27833024
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+
27843040func expandDataLossPreventionDiscoveryConfigStatus (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
27853041 return v , nil
27863042}
0 commit comments