Skip to content

Commit 0763457

Browse files
added excluded_fields and included_fields to data_loss_prevention_job_trigger resource (#7988) (#14736)
* added excluded fields and included fields * tests updated Signed-off-by: Modular Magician <[email protected]>
1 parent 8f88271 commit 0763457

4 files changed

+415
-0
lines changed

.changelog/7988.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note: enhancement
2+
dlp: added fields `included_fields` and `excluded_fields` to resource `google_data_loss_prevention_job_trigger`
3+
```

google/resource_data_loss_prevention_job_trigger.go

+143
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,21 @@ Only for use with external storage. Possible values: ["BASIC_COLUMNS", "GCS_COLU
380380
},
381381
},
382382
},
383+
"excluded_fields": {
384+
Type: schema.TypeList,
385+
Optional: true,
386+
Description: `References to fields excluded from scanning.
387+
This allows you to skip inspection of entire columns which you know have no findings.`,
388+
Elem: &schema.Resource{
389+
Schema: map[string]*schema.Schema{
390+
"name": {
391+
Type: schema.TypeString,
392+
Required: true,
393+
Description: `Name describing the field excluded from scanning.`,
394+
},
395+
},
396+
},
397+
},
383398
"identifying_fields": {
384399
Type: schema.TypeList,
385400
Optional: true,
@@ -395,6 +410,20 @@ If not specified, no identifying fields will be returned for findings.`,
395410
},
396411
},
397412
},
413+
"included_fields": {
414+
Type: schema.TypeList,
415+
Optional: true,
416+
Description: `Limit scanning only to these fields.`,
417+
Elem: &schema.Resource{
418+
Schema: map[string]*schema.Schema{
419+
"name": {
420+
Type: schema.TypeString,
421+
Required: true,
422+
Description: `Name describing the field to which scanning is limited.`,
423+
},
424+
},
425+
},
426+
},
398427
"rows_limit": {
399428
Type: schema.TypeInt,
400429
Optional: true,
@@ -2722,6 +2751,10 @@ func flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptions(v
27222751
flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsSampleMethod(original["sampleMethod"], d, config)
27232752
transformed["identifying_fields"] =
27242753
flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIdentifyingFields(original["identifyingFields"], d, config)
2754+
transformed["included_fields"] =
2755+
flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIncludedFields(original["includedFields"], d, config)
2756+
transformed["excluded_fields"] =
2757+
flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsExcludedFields(original["excludedFields"], d, config)
27252758
return []interface{}{transformed}
27262759
}
27272760
func flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsTableReference(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
@@ -2813,6 +2846,50 @@ func flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsId
28132846
return v
28142847
}
28152848

2849+
func flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIncludedFields(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
2850+
if v == nil {
2851+
return v
2852+
}
2853+
l := v.([]interface{})
2854+
transformed := make([]interface{}, 0, len(l))
2855+
for _, raw := range l {
2856+
original := raw.(map[string]interface{})
2857+
if len(original) < 1 {
2858+
// Do not include empty json objects coming back from the api
2859+
continue
2860+
}
2861+
transformed = append(transformed, map[string]interface{}{
2862+
"name": flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIncludedFieldsName(original["name"], d, config),
2863+
})
2864+
}
2865+
return transformed
2866+
}
2867+
func flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIncludedFieldsName(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
2868+
return v
2869+
}
2870+
2871+
func flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsExcludedFields(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
2872+
if v == nil {
2873+
return v
2874+
}
2875+
l := v.([]interface{})
2876+
transformed := make([]interface{}, 0, len(l))
2877+
for _, raw := range l {
2878+
original := raw.(map[string]interface{})
2879+
if len(original) < 1 {
2880+
// Do not include empty json objects coming back from the api
2881+
continue
2882+
}
2883+
transformed = append(transformed, map[string]interface{}{
2884+
"name": flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsExcludedFieldsName(original["name"], d, config),
2885+
})
2886+
}
2887+
return transformed
2888+
}
2889+
func flattenDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsExcludedFieldsName(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
2890+
return v
2891+
}
2892+
28162893
func flattenDataLossPreventionJobTriggerInspectJobStorageConfigHybridOptions(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
28172894
if v == nil {
28182895
return nil
@@ -4645,6 +4722,20 @@ func expandDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptions(v
46454722
transformed["identifyingFields"] = transformedIdentifyingFields
46464723
}
46474724

4725+
transformedIncludedFields, err := expandDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIncludedFields(original["included_fields"], d, config)
4726+
if err != nil {
4727+
return nil, err
4728+
} else if val := reflect.ValueOf(transformedIncludedFields); val.IsValid() && !tpgresource.IsEmptyValue(val) {
4729+
transformed["includedFields"] = transformedIncludedFields
4730+
}
4731+
4732+
transformedExcludedFields, err := expandDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsExcludedFields(original["excluded_fields"], d, config)
4733+
if err != nil {
4734+
return nil, err
4735+
} else if val := reflect.ValueOf(transformedExcludedFields); val.IsValid() && !tpgresource.IsEmptyValue(val) {
4736+
transformed["excludedFields"] = transformedExcludedFields
4737+
}
4738+
46484739
return transformed, nil
46494740
}
46504741

@@ -4731,6 +4822,58 @@ func expandDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIde
47314822
return v, nil
47324823
}
47334824

4825+
func expandDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIncludedFields(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
4826+
l := v.([]interface{})
4827+
req := make([]interface{}, 0, len(l))
4828+
for _, raw := range l {
4829+
if raw == nil {
4830+
continue
4831+
}
4832+
original := raw.(map[string]interface{})
4833+
transformed := make(map[string]interface{})
4834+
4835+
transformedName, err := expandDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIncludedFieldsName(original["name"], d, config)
4836+
if err != nil {
4837+
return nil, err
4838+
} else if val := reflect.ValueOf(transformedName); val.IsValid() && !tpgresource.IsEmptyValue(val) {
4839+
transformed["name"] = transformedName
4840+
}
4841+
4842+
req = append(req, transformed)
4843+
}
4844+
return req, nil
4845+
}
4846+
4847+
func expandDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIncludedFieldsName(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
4848+
return v, nil
4849+
}
4850+
4851+
func expandDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsExcludedFields(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
4852+
l := v.([]interface{})
4853+
req := make([]interface{}, 0, len(l))
4854+
for _, raw := range l {
4855+
if raw == nil {
4856+
continue
4857+
}
4858+
original := raw.(map[string]interface{})
4859+
transformed := make(map[string]interface{})
4860+
4861+
transformedName, err := expandDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsExcludedFieldsName(original["name"], d, config)
4862+
if err != nil {
4863+
return nil, err
4864+
} else if val := reflect.ValueOf(transformedName); val.IsValid() && !tpgresource.IsEmptyValue(val) {
4865+
transformed["name"] = transformedName
4866+
}
4867+
4868+
req = append(req, transformed)
4869+
}
4870+
return req, nil
4871+
}
4872+
4873+
func expandDataLossPreventionJobTriggerInspectJobStorageConfigBigQueryOptionsExcludedFieldsName(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
4874+
return v, nil
4875+
}
4876+
47344877
func expandDataLossPreventionJobTriggerInspectJobStorageConfigHybridOptions(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
47354878
l := v.([]interface{})
47364879
if len(l) == 0 {

0 commit comments

Comments
 (0)