Skip to content

Commit ca795b2

Browse files
Added publish_to_stackdriver field in google_data_loss_prevention_job_trigger resource (#7900) (#14539)
Signed-off-by: Modular Magician <[email protected]>
1 parent 1de7c1e commit ca795b2

4 files changed

+134
-0
lines changed

.changelog/7900.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
dlp: added `publish_to_stackdriver` field to `google_data_loss_prevention_job_trigger` resource
3+
```

google/resource_data_loss_prevention_job_trigger.go

+41
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,16 @@ is 1,024 characters.`,
260260
},
261261
ExactlyOneOf: []string{},
262262
},
263+
"publish_to_stackdriver": {
264+
Type: schema.TypeList,
265+
Optional: true,
266+
Description: `Enable Stackdriver metric dlp.googleapis.com/findingCount.`,
267+
MaxItems: 1,
268+
Elem: &schema.Resource{
269+
Schema: map[string]*schema.Schema{},
270+
},
271+
ExactlyOneOf: []string{},
272+
},
263273
"save_findings": {
264274
Type: schema.TypeList,
265275
Optional: true,
@@ -2852,6 +2862,7 @@ func flattenDataLossPreventionJobTriggerInspectJobActions(v interface{}, d *sche
28522862
"publish_findings_to_cloud_data_catalog": flattenDataLossPreventionJobTriggerInspectJobActionsPublishFindingsToCloudDataCatalog(original["publishFindingsToCloudDataCatalog"], d, config),
28532863
"job_notification_emails": flattenDataLossPreventionJobTriggerInspectJobActionsJobNotificationEmails(original["jobNotificationEmails"], d, config),
28542864
"deidentify": flattenDataLossPreventionJobTriggerInspectJobActionsDeidentify(original["deidentify"], d, config),
2865+
"publish_to_stackdriver": flattenDataLossPreventionJobTriggerInspectJobActionsPublishToStackdriver(original["publishToStackdriver"], d, config),
28552866
})
28562867
}
28572868
return transformed
@@ -3056,6 +3067,14 @@ func flattenDataLossPreventionJobTriggerInspectJobActionsDeidentifyTransformatio
30563067
return v
30573068
}
30583069

3070+
func flattenDataLossPreventionJobTriggerInspectJobActionsPublishToStackdriver(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
3071+
if v == nil {
3072+
return nil
3073+
}
3074+
transformed := make(map[string]interface{})
3075+
return []interface{}{transformed}
3076+
}
3077+
30593078
func expandDataLossPreventionJobTriggerDescription(v interface{}, d TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
30603079
return v, nil
30613080
}
@@ -4840,6 +4859,13 @@ func expandDataLossPreventionJobTriggerInspectJobActions(v interface{}, d Terraf
48404859
transformed["deidentify"] = transformedDeidentify
48414860
}
48424861

4862+
transformedPublishToStackdriver, err := expandDataLossPreventionJobTriggerInspectJobActionsPublishToStackdriver(original["publish_to_stackdriver"], d, config)
4863+
if err != nil {
4864+
return nil, err
4865+
} else {
4866+
transformed["publishToStackdriver"] = transformedPublishToStackdriver
4867+
}
4868+
48434869
req = append(req, transformed)
48444870
}
48454871
return req, nil
@@ -5164,6 +5190,21 @@ func expandDataLossPreventionJobTriggerInspectJobActionsDeidentifyTransformation
51645190
return v, nil
51655191
}
51665192

5193+
func expandDataLossPreventionJobTriggerInspectJobActionsPublishToStackdriver(v interface{}, d TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
5194+
l := v.([]interface{})
5195+
if len(l) == 0 {
5196+
return nil, nil
5197+
}
5198+
5199+
if l[0] == nil {
5200+
transformed := make(map[string]interface{})
5201+
return transformed, nil
5202+
}
5203+
transformed := make(map[string]interface{})
5204+
5205+
return transformed, nil
5206+
}
5207+
51675208
func resourceDataLossPreventionJobTriggerEncoder(d *schema.ResourceData, meta interface{}, obj map[string]interface{}) (map[string]interface{}, error) {
51685209
newObj := make(map[string]interface{})
51695210
newObj["jobTrigger"] = obj

google/resource_data_loss_prevention_job_trigger_generated_test.go

+56
Original file line numberDiff line numberDiff line change
@@ -705,6 +705,62 @@ resource "google_data_loss_prevention_job_trigger" "inspect" {
705705
`, context)
706706
}
707707

708+
func TestAccDataLossPreventionJobTrigger_dlpJobTriggerPublishToStackdriverExample(t *testing.T) {
709+
t.Parallel()
710+
711+
context := map[string]interface{}{
712+
"project": acctest.GetTestProjectFromEnv(),
713+
"random_suffix": RandString(t, 10),
714+
}
715+
716+
VcrTest(t, resource.TestCase{
717+
PreCheck: func() { acctest.AccTestPreCheck(t) },
718+
ProtoV5ProviderFactories: ProtoV5ProviderFactories(t),
719+
CheckDestroy: testAccCheckDataLossPreventionJobTriggerDestroyProducer(t),
720+
Steps: []resource.TestStep{
721+
{
722+
Config: testAccDataLossPreventionJobTrigger_dlpJobTriggerPublishToStackdriverExample(context),
723+
},
724+
{
725+
ResourceName: "google_data_loss_prevention_job_trigger.publish_to_stackdriver",
726+
ImportState: true,
727+
ImportStateVerify: true,
728+
ImportStateVerifyIgnore: []string{"parent"},
729+
},
730+
},
731+
})
732+
}
733+
734+
func testAccDataLossPreventionJobTrigger_dlpJobTriggerPublishToStackdriverExample(context map[string]interface{}) string {
735+
return Nprintf(`
736+
resource "google_data_loss_prevention_job_trigger" "publish_to_stackdriver" {
737+
parent = "projects/%{project}"
738+
description = "Description for the job_trigger created by terraform"
739+
display_name = "TerraformDisplayName"
740+
741+
triggers {
742+
schedule {
743+
recurrence_period_duration = "86400s"
744+
}
745+
}
746+
747+
inspect_job {
748+
inspect_template_name = "sample-inspect-template"
749+
actions {
750+
publish_to_stackdriver {}
751+
}
752+
storage_config {
753+
cloud_storage_options {
754+
file_set {
755+
url = "gs://mybucket/directory/"
756+
}
757+
}
758+
}
759+
}
760+
}
761+
`, context)
762+
}
763+
708764
func testAccCheckDataLossPreventionJobTriggerDestroyProducer(t *testing.T) func(s *terraform.State) error {
709765
return func(s *terraform.State) error {
710766
for name, rs := range s.RootModule().Resources {

website/docs/r/data_loss_prevention_job_trigger.html.markdown

+34
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,36 @@ resource "google_data_loss_prevention_job_trigger" "inspect" {
402402
}
403403
}
404404
```
405+
## Example Usage - Dlp Job Trigger Publish To Stackdriver
406+
407+
408+
```hcl
409+
resource "google_data_loss_prevention_job_trigger" "publish_to_stackdriver" {
410+
parent = "projects/my-project-name"
411+
description = "Description for the job_trigger created by terraform"
412+
display_name = "TerraformDisplayName"
413+
414+
triggers {
415+
schedule {
416+
recurrence_period_duration = "86400s"
417+
}
418+
}
419+
420+
inspect_job {
421+
inspect_template_name = "sample-inspect-template"
422+
actions {
423+
publish_to_stackdriver {}
424+
}
425+
storage_config {
426+
cloud_storage_options {
427+
file_set {
428+
url = "gs://mybucket/directory/"
429+
}
430+
}
431+
}
432+
}
433+
}
434+
```
405435

406436
## Argument Reference
407437

@@ -1187,6 +1217,10 @@ The following arguments are supported:
11871217
Create a de-identified copy of the requested table or files.
11881218
Structure is [documented below](#nested_deidentify).
11891219

1220+
* `publish_to_stackdriver` -
1221+
(Optional)
1222+
Enable Stackdriver metric dlp.googleapis.com/findingCount.
1223+
11901224

11911225
<a name="nested_save_findings"></a>The `save_findings` block supports:
11921226

0 commit comments

Comments
 (0)