@@ -2,10 +2,13 @@ package tco
2
2
3
3
import (
4
4
"context"
5
+ "fmt"
6
+ "log"
7
+ "strings"
8
+
5
9
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
6
10
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
7
11
organization "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331"
8
- "log"
9
12
10
13
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
11
14
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
@@ -45,6 +48,12 @@ func ResourceTencentCloudOrganizationOrgManagePolicy() *schema.Resource {
45
48
Type : schema .TypeString ,
46
49
Description : "Policy description." ,
47
50
},
51
+
52
+ "policy_id" : {
53
+ Computed : true ,
54
+ Type : schema .TypeString ,
55
+ Description : "Policy Id." ,
56
+ },
48
57
},
49
58
}
50
59
}
@@ -56,8 +65,9 @@ func resourceTencentCloudOrganizationOrgManagePolicyCreate(d *schema.ResourceDat
56
65
logId := tccommon .GetLogId (tccommon .ContextNil )
57
66
58
67
var (
59
- request = organization .NewCreatePolicyRequest ()
60
- response = organization .NewCreatePolicyResponse ()
68
+ policyType string
69
+ request = organization .NewCreatePolicyRequest ()
70
+ response = organization .NewCreatePolicyResponse ()
61
71
)
62
72
if v , ok := d .GetOk ("name" ); ok {
63
73
request .Name = helper .String (v .(string ))
@@ -68,6 +78,7 @@ func resourceTencentCloudOrganizationOrgManagePolicyCreate(d *schema.ResourceDat
68
78
}
69
79
70
80
if v , ok := d .GetOk ("type" ); ok {
81
+ policyType = v .(string )
71
82
request .Type = helper .String (v .(string ))
72
83
}
73
84
@@ -90,8 +101,7 @@ func resourceTencentCloudOrganizationOrgManagePolicyCreate(d *schema.ResourceDat
90
101
return err
91
102
}
92
103
93
- d .SetId (helper .UInt64ToStr (* response .Response .PolicyId ))
94
-
104
+ d .SetId (strings .Join ([]string {helper .UInt64ToStr (* response .Response .PolicyId ), policyType }, tccommon .FILED_SP ))
95
105
return resourceTencentCloudOrganizationOrgManagePolicyRead (d , meta )
96
106
}
97
107
@@ -105,11 +115,12 @@ func resourceTencentCloudOrganizationOrgManagePolicyRead(d *schema.ResourceData,
105
115
106
116
service := OrganizationService {client : meta .(tccommon.ProviderMeta ).GetAPIV3Conn ()}
107
117
108
- policyId := d .Id ()
109
- var policyType string
110
- if v , ok := d .GetOk ("type" ); ok {
111
- policyType = v .(string )
118
+ idSplit := strings .Split (d .Id (), tccommon .FILED_SP )
119
+ if len (idSplit ) != 2 {
120
+ return fmt .Errorf ("id is broken,%s" , d .Id ())
112
121
}
122
+ policyId := idSplit [0 ]
123
+ policyType := idSplit [1 ]
113
124
114
125
OrgManagePolicy , err := service .DescribeOrganizationOrgManagePolicyById (ctx , policyId , policyType )
115
126
if err != nil {
@@ -137,6 +148,8 @@ func resourceTencentCloudOrganizationOrgManagePolicyRead(d *schema.ResourceData,
137
148
if OrgManagePolicy .Description != nil {
138
149
_ = d .Set ("description" , OrgManagePolicy .Description )
139
150
}
151
+ _ = d .Set ("policy_id" , policyId )
152
+
140
153
return nil
141
154
}
142
155
@@ -148,7 +161,11 @@ func resourceTencentCloudOrganizationOrgManagePolicyUpdate(d *schema.ResourceDat
148
161
149
162
request := organization .NewUpdatePolicyRequest ()
150
163
151
- policyId := d .Id ()
164
+ idSplit := strings .Split (d .Id (), tccommon .FILED_SP )
165
+ if len (idSplit ) != 2 {
166
+ return fmt .Errorf ("id is broken,%s" , d .Id ())
167
+ }
168
+ policyId := idSplit [0 ]
152
169
153
170
request .PolicyId = helper .StrToInt64Point (policyId )
154
171
@@ -201,11 +218,12 @@ func resourceTencentCloudOrganizationOrgManagePolicyDelete(d *schema.ResourceDat
201
218
ctx := context .WithValue (context .TODO (), tccommon .LogIdKey , logId )
202
219
203
220
service := OrganizationService {client : meta .(tccommon.ProviderMeta ).GetAPIV3Conn ()}
204
- policyId := d .Id ()
205
- var policyType string
206
- if v , ok := d .GetOk ("type" ); ok {
207
- policyType = v .(string )
221
+ idSplit := strings .Split (d .Id (), tccommon .FILED_SP )
222
+ if len (idSplit ) != 2 {
223
+ return fmt .Errorf ("id is broken,%s" , d .Id ())
208
224
}
225
+ policyId := idSplit [0 ]
226
+ policyType := idSplit [1 ]
209
227
210
228
if err := service .DeleteOrganizationOrgManagePolicyById (ctx , policyId , policyType ); err != nil {
211
229
return err
0 commit comments