@@ -51,6 +51,14 @@ resource "tencentcloud_monitor_policy_binding_object" "binding" {
5151 dimensions_json = "{\"unInstanceId\":\"${data.tencentcloud_instances.instances.instance_list[0].instance_id}\"}"
5252 }
5353}
54+
55+ ```
56+ Import
57+
58+ Monitor Policy Binding Object can be imported, e.g.
59+
60+ ```
61+ $ terraform import tencentcloud_monitor_policy_binding_object.binding policyId
5462```
5563
5664*/
@@ -75,6 +83,9 @@ func resourceTencentMonitorPolicyBindingObject() *schema.Resource {
7583 Create : resourceTencentMonitorPolicyBindingObjectCreate ,
7684 Read : resourceTencentMonitorPolicyBindingObjectRead ,
7785 Delete : resourceTencentMonitorPolicyBindingObjectDelete ,
86+ Importer : & schema.ResourceImporter {
87+ State : schema .ImportStatePassthrough ,
88+ },
7889 Schema : map [string ]* schema.Schema {
7990 "policy_id" : {
8091 Type : schema .TypeString ,
@@ -169,32 +180,9 @@ func resourceTencentMonitorPolicyBindingObjectCreate(d *schema.ResourceData, met
169180 return err
170181 }
171182
172- d .SetId (helper . DataResourceIdsHash ( idSeeds ) )
183+ d .SetId (policyId )
173184 time .Sleep (3 * time .Second )
174185
175- //check if binding success
176- //objects, err := monitorService.DescribeBindingAlarmPolicyObjectList(ctx, policyId)
177- //
178- //if err != nil {
179- // return err
180- //}
181- //
182- //successDimensionsJsonMap := make(map[string]bool)
183- //bindingFails := make([]string, 0, len(request.Dimensions))
184- //for _, v := range objects {
185- // successDimensionsJsonMap[*v.Dimensions] = true
186- //}
187- //for _, v := range request.Dimensions {
188- // if !successDimensionsJsonMap[*v.Dimensions] {
189- // bindingFails = append(bindingFails, *v.Dimensions)
190- // }
191- //}
192- //
193- //if len(bindingFails) > 0 {
194- // return fmt.Errorf("bind objects to policy has partial failure,Please check if it is an instance of this region `%s`,[%s]",
195- // monitorService.client.Region, helper.SliceFieldSerialize(bindingFails))
196- //}
197-
198186 return resourceTencentMonitorPolicyBindingObjectRead (d , meta )
199187}
200188
@@ -205,9 +193,11 @@ func resourceTencentMonitorPolicyBindingObjectRead(d *schema.ResourceData, meta
205193 logId = getLogId (contextNil )
206194 ctx = context .WithValue (context .TODO (), logIdKey , logId )
207195 monitorService = MonitorService {client : meta .(* TencentCloudClient ).apiV3Conn }
208- policyId = d .Get ( "policy_id" ).( string )
196+ policyId = d .Id ( )
209197 )
210198
199+ d .Set ("policy_id" , policyId )
200+
211201 info , err := monitorService .DescribeAlarmPolicyById (ctx , policyId )
212202 if err != nil {
213203 return err
@@ -222,35 +212,15 @@ func resourceTencentMonitorPolicyBindingObjectRead(d *schema.ResourceData, meta
222212 return err
223213 }
224214
225- getUniqueId := func (dimensionsJson string ) (has bool , uniqueId string ) {
226- for _ , item := range objects {
227- if * item .Dimensions == dimensionsJson {
228- uniqueId = * item .UniqueId
229- has = true
230- return
231- }
232- }
233- return
234- }
235-
236- dimensions := d .Get ("dimensions" ).(* schema.Set ).List ()
237- newDimensions := make ([]interface {}, 0 , len (dimensions ))
215+ newDimensions := make ([]interface {}, 0 , 10 )
238216
239- for _ , v := range dimensions {
240- m := v .(map [string ]interface {})
241- var dimensionsJson = m ["dimensions_json" ].(string )
242- var has , uniqueId = getUniqueId (dimensionsJson )
243- if has {
244- newDimensions = append (newDimensions , map [string ]interface {}{
245- "dimensions_json" : dimensionsJson ,
246- "unique_id" : uniqueId ,
247- })
248- }
249- }
250-
251- if len (newDimensions ) == 0 {
252- d .SetId ("" )
253- return nil
217+ for _ , item := range objects {
218+ dimensionsJson := item .Dimensions
219+ uniqueId := item .UniqueId
220+ newDimensions = append (newDimensions , map [string ]interface {}{
221+ "dimensions_json" : dimensionsJson ,
222+ "unique_id" : uniqueId ,
223+ })
254224 }
255225
256226 return d .Set ("dimensions" , newDimensions )
@@ -263,7 +233,7 @@ func resourceTencentMonitorPolicyBindingObjectDelete(d *schema.ResourceData, met
263233 logId = getLogId (contextNil )
264234 ctx = context .WithValue (context .TODO (), logIdKey , logId )
265235 monitorService = MonitorService {client : meta .(* TencentCloudClient ).apiV3Conn }
266- policyId = d .Get ( "policy_id" ).( string )
236+ policyId = d .Id ( )
267237 )
268238
269239 info , err := monitorService .DescribeAlarmPolicyById (ctx , policyId )
@@ -301,11 +271,6 @@ func resourceTencentMonitorPolicyBindingObjectDelete(d *schema.ResourceData, met
301271 }
302272 }
303273
304- if len (uniqueIds ) == 0 {
305- d .SetId ("" )
306- return nil
307- }
308-
309274 var (
310275 request = monitor .NewUnBindingPolicyObjectRequest ()
311276 )
0 commit comments