@@ -19,6 +19,7 @@ package browser
1919
2020import (
2121 "github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/api/v1/config/synthetic/monitors/request"
22+ "github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/opt"
2223
2324 "github.com/dynatrace-oss/terraform-provider-dynatrace/terraform/hcl"
2425
@@ -248,10 +249,10 @@ type JavascriptSettings struct {
248249 TimeoutSettings * TimeoutSettings `json:"timeoutSettings"`
249250 CustomProperties * string `json:"customProperties"`
250251 VisuallyCompleteOptions * VisuallyCompleteOptions `json:"visuallyCompleteOptions"`
251- FetchRequests bool `json:"fetchRequests" `
252- XMLHttpRequests bool `json:"xmlHttpRequests"`
253- JavaScriptErrors bool `json:"javaScriptErrors"`
254- TimedActions bool `json:"timedActions"`
252+ FetchRequests * bool `json:"fetchRequests" `
253+ XMLHttpRequests * bool `json:"xmlHttpRequests"`
254+ JavaScriptErrors * bool `json:"javaScriptErrors"`
255+ TimedActions * bool `json:"timedActions"`
255256}
256257
257258func (me * JavascriptSettings ) Schema () map [string ]* schema.Schema {
@@ -302,6 +303,13 @@ func (me *JavascriptSettings) Schema() map[string]*schema.Schema {
302303 }
303304}
304305
306+ func setDefaultTrue (properties hcl.Properties , name string , value * bool ) {
307+ if value == nil {
308+ value = opt .NewBool (true )
309+ }
310+ properties [name ] = * value
311+ }
312+
305313func (me * JavascriptSettings ) MarshalHCL (properties hcl.Properties ) error {
306314 if err := properties .Encode ("timeout_settings" , me .TimeoutSettings ); err != nil {
307315 return err
@@ -314,21 +322,18 @@ func (me *JavascriptSettings) MarshalHCL(properties hcl.Properties) error {
314322 return err
315323 }
316324 }
317- if err := properties .Encode ("fetch_requests" , me .FetchRequests ); err != nil {
318- return err
319- }
320- if err := properties .Encode ("xml_http_requests" , me .XMLHttpRequests ); err != nil {
321- return err
322- }
323- if err := properties .Encode ("javascript_errors" , me .JavaScriptErrors ); err != nil {
324- return err
325- }
326- if err := properties .Encode ("timed_actions" , me .TimedActions ); err != nil {
327- return err
328- }
325+ setDefaultTrue (properties , "fetch_requests" , me .FetchRequests )
326+ setDefaultTrue (properties , "xml_http_requests" , me .XMLHttpRequests )
327+ setDefaultTrue (properties , "javascript_errors" , me .JavaScriptErrors )
328+ setDefaultTrue (properties , "timed_actions" , me .TimedActions )
329329 return nil
330330}
331331
332+ func decodeDefaultTrue (decoder hcl.Decoder , name string ) * bool {
333+ boolValue , _ := decoder .GetOk (name )
334+ return opt .NewBool (boolValue .(bool ))
335+ }
336+
332337func (me * JavascriptSettings ) UnmarshalHCL (decoder hcl.Decoder ) error {
333338 if err := decoder .Decode ("timeout_settings" , & me .TimeoutSettings ); err != nil {
334339 return err
@@ -339,18 +344,11 @@ func (me *JavascriptSettings) UnmarshalHCL(decoder hcl.Decoder) error {
339344 if err := decoder .Decode ("custom_properties" , & me .CustomProperties ); err != nil {
340345 return err
341346 }
342- if err := decoder .Decode ("fetch_requests" , & me .FetchRequests ); err != nil {
343- return err
344- }
345- if err := decoder .Decode ("xml_http_requests" , & me .XMLHttpRequests ); err != nil {
346- return err
347- }
348- if err := decoder .Decode ("javascript_errors" , & me .JavaScriptErrors ); err != nil {
349- return err
350- }
351- if err := decoder .Decode ("timed_actions" , & me .TimedActions ); err != nil {
352- return err
353- }
347+
348+ me .FetchRequests = decodeDefaultTrue (decoder , "fetch_requests" )
349+ me .XMLHttpRequests = decodeDefaultTrue (decoder , "xml_http_requests" )
350+ me .JavaScriptErrors = decodeDefaultTrue (decoder , "javascript_errors" )
351+ me .TimedActions = decodeDefaultTrue (decoder , "timed_actions" )
354352 return nil
355353}
356354
0 commit comments