@@ -433,14 +433,16 @@ func resourceTencentMonitorAlarmPolicyCreate(d *schema.ResourceData, meta interf
433433 if m ["is_power_notice" ] != nil {
434434 alarmPolicyRule .IsPowerNotice = helper .IntInt64 (m ["is_power_notice" ].(int ))
435435 }
436- if m ["filter" ] != nil {
437- filters := m ["filter" ].([]interface {})
438- filter := filters [0 ].(map [string ]interface {})
439- alarmPolicyFilter := monitor.AlarmPolicyFilter {
440- Type : helper .String (filter ["type" ].(string )),
441- Dimensions : helper .String (filter ["dimensions" ].(string )),
436+ if v , ok := m ["filter" ]; ok {
437+ filters := v .([]interface {})
438+ if len (filters ) > 0 {
439+ filter := filters [0 ].(map [string ]interface {})
440+ alarmPolicyFilter := monitor.AlarmPolicyFilter {
441+ Type : helper .String (filter ["type" ].(string )),
442+ Dimensions : helper .String (filter ["dimensions" ].(string )),
443+ }
444+ alarmPolicyRule .Filter = & alarmPolicyFilter
442445 }
443- alarmPolicyRule .Filter = & alarmPolicyFilter
444446 }
445447
446448 if m ["description" ] != nil {
@@ -486,12 +488,14 @@ func resourceTencentMonitorAlarmPolicyCreate(d *schema.ResourceData, meta interf
486488 }
487489 if m ["filter" ] != nil {
488490 filters := m ["filter" ].([]interface {})
489- filter := filters [0 ].(map [string ]interface {})
490- alarmPolicyFilter := monitor.AlarmPolicyFilter {
491- Type : helper .String (filter ["type" ].(string )),
492- Dimensions : helper .String (filter ["dimensions" ].(string )),
491+ if len (filters ) > 0 {
492+ filter := filters [0 ].(map [string ]interface {})
493+ alarmPolicyFilter := monitor.AlarmPolicyFilter {
494+ Type : helper .String (filter ["type" ].(string )),
495+ Dimensions : helper .String (filter ["dimensions" ].(string )),
496+ }
497+ alarmPolicyRule .Filter = & alarmPolicyFilter
493498 }
494- alarmPolicyRule .Filter = & alarmPolicyFilter
495499 }
496500 if m ["description" ] != nil {
497501 alarmPolicyRule .Description = helper .String (m ["description" ].(string ))
@@ -610,14 +614,16 @@ func resourceTencentMonitorAlarmPolicyRead(d *schema.ResourceData, meta interfac
610614 "unit" : rule .Unit ,
611615 "rule_type" : rule .RuleType ,
612616 }
613- if rule .Filter != nil {
617+ if * rule .Filter . Type != "" || * rule . Filter . Dimensions != "" {
614618 var filter = make ([]interface {}, 0 , 10 )
615619 alarmPolicyFilter := map [string ]interface {}{
616620 "type" : rule .Filter .Type ,
617621 "dimensions" : rule .Filter .Dimensions ,
618622 }
619623 filter = append (filter , alarmPolicyFilter )
620- m ["filter" ] = filter
624+ if len (filter ) > 0 {
625+ m ["filter" ] = filter
626+ }
621627 }
622628
623629 rules = append (rules , m )
@@ -651,14 +657,16 @@ func resourceTencentMonitorAlarmPolicyRead(d *schema.ResourceData, meta interfac
651657 m ["unit" ] = eventRule .Unit
652658 m ["rule_type" ] = eventRule .RuleType
653659
654- if eventRule .Filter != nil {
660+ if * eventRule .Filter . Type != "" || * eventRule . Filter . Dimensions != "" {
655661 var filter = make ([]interface {}, 0 , 10 )
656662 alarmPolicyFilter := map [string ]interface {}{
657663 "type" : eventRule .Filter .Type ,
658664 "dimensions" : eventRule .Filter .Dimensions ,
659665 }
660666 filter = append (filter , alarmPolicyFilter )
661- m ["filter" ] = filter
667+ if len (filter ) > 0 {
668+ m ["filter" ] = filter
669+ }
662670 }
663671 eventConditions = append (eventConditions , m )
664672 }
0 commit comments