@@ -197,17 +197,17 @@ func AlarmPolicyRule() map[string]*schema.Schema {
197
197
Type : schema .TypeList ,
198
198
Optional : true ,
199
199
MaxItems : 1 ,
200
- Description : "Filter condition for one single trigger rule." ,
200
+ Description : "Filter condition for one single trigger rule. Must set it when create tke-xxx rules. " ,
201
201
Elem : & schema.Resource {
202
202
Schema : map [string ]* schema.Schema {
203
203
"type" : {
204
204
Type : schema .TypeString ,
205
- Required : true ,
205
+ Optional : true ,
206
206
Description : "Filter condition type. Valid values: DIMENSION (uses dimensions for filtering)." ,
207
207
},
208
208
"dimensions" : {
209
209
Type : schema .TypeString ,
210
- Required : true ,
210
+ Optional : true ,
211
211
Description : "JSON string generated by serializing the AlarmPolicyDimension two-dimensional array." ,
212
212
},
213
213
},
@@ -253,11 +253,13 @@ func resourceTencentMonitorAlarmPolicy() *schema.Resource {
253
253
"monitor_type" : {
254
254
Type : schema .TypeString ,
255
255
Required : true ,
256
+ ForceNew : true ,
256
257
Description : "The type of monitor." ,
257
258
},
258
259
"namespace" : {
259
260
Type : schema .TypeString ,
260
261
Required : true ,
262
+ ForceNew : true ,
261
263
Description : "The type of alarm." ,
262
264
},
263
265
"remark" : {
@@ -275,6 +277,7 @@ func resourceTencentMonitorAlarmPolicy() *schema.Resource {
275
277
"project_id" : {
276
278
Type : schema .TypeInt ,
277
279
Optional : true ,
280
+ ForceNew : true ,
278
281
Default : - 1 ,
279
282
Description : "Project ID. For products with different projects, a value other than -1 must be passed in." ,
280
283
},
@@ -595,12 +598,6 @@ func resourceTencentMonitorAlarmPolicyRead(d *schema.ResourceData, meta interfac
595
598
596
599
var rules = make ([]interface {}, 0 , 100 )
597
600
for _ , rule := range policy .Condition .Rules {
598
- var filter = make ([]interface {}, 0 , 10 )
599
- alarmPolicyFilter := map [string ]interface {}{
600
- "type" : rule .Filter .Type ,
601
- "dimensions" : rule .Filter .Dimensions ,
602
- }
603
- filter = append (filter , alarmPolicyFilter )
604
601
605
602
m := map [string ]interface {}{
606
603
"metric_name" : rule .MetricName ,
@@ -609,11 +606,20 @@ func resourceTencentMonitorAlarmPolicyRead(d *schema.ResourceData, meta interfac
609
606
"value" : rule .Value ,
610
607
"continue_period" : rule .ContinuePeriod ,
611
608
"notice_frequency" : rule .NoticeFrequency ,
612
- "filter" : filter ,
613
609
"description" : rule .Description ,
614
610
"unit" : rule .Unit ,
615
611
"rule_type" : rule .RuleType ,
616
612
}
613
+ if rule .Filter != nil {
614
+ var filter = make ([]interface {}, 0 , 10 )
615
+ alarmPolicyFilter := map [string ]interface {}{
616
+ "type" : rule .Filter .Type ,
617
+ "dimensions" : rule .Filter .Dimensions ,
618
+ }
619
+ filter = append (filter , alarmPolicyFilter )
620
+ m ["filter" ] = filter
621
+ }
622
+
617
623
rules = append (rules , m )
618
624
}
619
625
@@ -641,10 +647,19 @@ func resourceTencentMonitorAlarmPolicyRead(d *schema.ResourceData, meta interfac
641
647
m ["notice_frequency" ] = eventRule .NoticeFrequency
642
648
m ["is_power_notice" ] = eventRule .IsPowerNotice
643
649
m ["notice_frequency" ] = eventRule .NoticeFrequency
644
- m ["filter" ] = filter
645
650
m ["description" ] = eventRule .Description
646
651
m ["unit" ] = eventRule .Unit
647
652
m ["rule_type" ] = eventRule .RuleType
653
+
654
+ if eventRule .Filter != nil {
655
+ var filter = make ([]interface {}, 0 , 10 )
656
+ alarmPolicyFilter := map [string ]interface {}{
657
+ "type" : eventRule .Filter .Type ,
658
+ "dimensions" : eventRule .Filter .Dimensions ,
659
+ }
660
+ filter = append (filter , alarmPolicyFilter )
661
+ m ["filter" ] = filter
662
+ }
648
663
eventConditions = append (eventConditions , m )
649
664
}
650
665
_ = d .Set ("event_conditions" , eventConditions )
@@ -679,6 +694,44 @@ func resourceTencentMonitorAlarmPolicyUpdate(d *schema.ResourceData, meta interf
679
694
monitorService = MonitorService {client : meta .(* TencentCloudClient ).apiV3Conn }
680
695
)
681
696
697
+ if d .HasChange ("policy_name" ) {
698
+ request := monitor .NewModifyAlarmPolicyInfoRequest ()
699
+ request .Module = helper .String ("monitor" )
700
+ request .PolicyId = helper .String (d .Id ())
701
+ request .Key = helper .String ("NAME" )
702
+ value := d .Get ("policy_name" ).(string )
703
+ request .Value = helper .String (value )
704
+
705
+ if err := resource .Retry (readRetryTimeout , func () * resource.RetryError {
706
+ ratelimit .Check (request .GetAction ())
707
+ if _ , err := monitorService .client .UseMonitorClient ().ModifyAlarmPolicyInfo (request ); err != nil {
708
+ return retryError (err , InternalError )
709
+ }
710
+ return nil
711
+ }); err != nil {
712
+ return err
713
+ }
714
+ }
715
+
716
+ if d .HasChange ("remark" ) {
717
+ request := monitor .NewModifyAlarmPolicyInfoRequest ()
718
+ request .Module = helper .String ("monitor" )
719
+ request .PolicyId = helper .String (d .Id ())
720
+ request .Key = helper .String ("REMARK" )
721
+ value := d .Get ("remark" ).(string )
722
+ request .Value = helper .String (value )
723
+
724
+ if err := resource .Retry (readRetryTimeout , func () * resource.RetryError {
725
+ ratelimit .Check (request .GetAction ())
726
+ if _ , err := monitorService .client .UseMonitorClient ().ModifyAlarmPolicyInfo (request ); err != nil {
727
+ return retryError (err , InternalError )
728
+ }
729
+ return nil
730
+ }); err != nil {
731
+ return err
732
+ }
733
+ }
734
+
682
735
if d .HasChange ("enable" ) {
683
736
request := monitor .NewModifyAlarmPolicyStatusRequest ()
684
737
request .Module = helper .String ("monitor" )
@@ -687,10 +740,6 @@ func resourceTencentMonitorAlarmPolicyUpdate(d *schema.ResourceData, meta interf
687
740
enable := d .Get ("enable" ).(int )
688
741
request .Enable = helper .IntInt64 (enable )
689
742
690
- //if v, ok := d.GetOk("enable"); ok {
691
- // request. = helper.IntInt64(v.(int))
692
- //}
693
-
694
743
if err := resource .Retry (readRetryTimeout , func () * resource.RetryError {
695
744
ratelimit .Check (request .GetAction ())
696
745
if _ , err := monitorService .client .UseMonitorClient ().ModifyAlarmPolicyStatus (request ); err != nil {
0 commit comments