@@ -7,8 +7,9 @@ Example Usage
77resource "tencentcloud_teo_application_proxy_rule" "application_proxy_rule" {
88 forward_client_ip = "TOA"
99 origin_type = "custom"
10+ origin_port = "8083"
1011 origin_value = [
11- "127.0.0.1:8081 ",
12+ "127.0.0.1",
1213 ]
1314 port = [
1415 "8083",
@@ -91,6 +92,12 @@ func resourceTencentCloudTeoApplicationProxyRule() *schema.Resource {
9192 Description : "Origin server type.- `custom`: Specified origins.- `origins`: An origin group." ,
9293 },
9394
95+ "origin_port" : {
96+ Type : schema .TypeString ,
97+ Required : true ,
98+ Description : "Origin port, supported formats: single port: 80; Port segment: 81-90, 81 to 90 ports." ,
99+ },
100+
94101 "origin_value" : {
95102 Type : schema .TypeSet ,
96103 Elem : & schema.Schema {
@@ -164,6 +171,10 @@ func resourceTencentCloudTeoApplicationProxyRuleCreate(d *schema.ResourceData, m
164171 request .OriginType = helper .String (v .(string ))
165172 }
166173
174+ if v , ok := d .GetOk ("origin_port" ); ok {
175+ request .OriginPort = helper .String (v .(string ))
176+ }
177+
167178 if v , ok := d .GetOk ("origin_value" ); ok {
168179 originValueSet := v .(* schema.Set ).List ()
169180 for i := range originValueSet {
@@ -268,6 +279,10 @@ func resourceTencentCloudTeoApplicationProxyRuleRead(d *schema.ResourceData, met
268279 _ = d .Set ("origin_type" , proxyRule .OriginType )
269280 }
270281
282+ if proxyRule .OriginPort != nil {
283+ _ = d .Set ("origin_port" , proxyRule .OriginPort )
284+ }
285+
271286 if proxyRule .OriginValue != nil {
272287 _ = d .Set ("origin_value" , proxyRule .OriginValue )
273288 }
@@ -319,10 +334,8 @@ func resourceTencentCloudTeoApplicationProxyRuleUpdate(d *schema.ResourceData, m
319334
320335 }
321336
322- if d .HasChange ("proto" ) {
323- if v , ok := d .GetOk ("proto" ); ok {
324- request .Proto = helper .String (v .(string ))
325- }
337+ if v , ok := d .GetOk ("proto" ); ok {
338+ request .Proto = helper .String (v .(string ))
326339 }
327340
328341 if v , ok := d .GetOk ("port" ); ok {
@@ -337,26 +350,24 @@ func resourceTencentCloudTeoApplicationProxyRuleUpdate(d *schema.ResourceData, m
337350 request .OriginType = helper .String (v .(string ))
338351 }
339352
340- if d .HasChange ("origin_value" ) {
341- if v , ok := d .GetOk ("origin_value" ); ok {
342- originValueSet := v .(* schema.Set ).List ()
343- for i := range originValueSet {
344- originValue := originValueSet [i ].(string )
345- request .OriginValue = append (request .OriginValue , & originValue )
346- }
347- }
353+ if v , ok := d .GetOk ("origin_port" ); ok {
354+ request .OriginPort = helper .String (v .(string ))
348355 }
349356
350- if d .HasChange ("forward_client_ip" ) {
351- if v , ok := d .GetOk ("forward_client_ip" ); ok {
352- request .ForwardClientIp = helper .String (v .(string ))
357+ if v , ok := d .GetOk ("origin_value" ); ok {
358+ originValueSet := v .(* schema.Set ).List ()
359+ for i := range originValueSet {
360+ originValue := originValueSet [i ].(string )
361+ request .OriginValue = append (request .OriginValue , & originValue )
353362 }
354363 }
355364
356- if d .HasChange ("session_persist" ) {
357- if v , ok := d .GetOk ("session_persist" ); ok {
358- request .SessionPersist = helper .Bool (v .(bool ))
359- }
365+ if v , ok := d .GetOk ("forward_client_ip" ); ok {
366+ request .ForwardClientIp = helper .String (v .(string ))
367+ }
368+
369+ if v , ok := d .GetOk ("session_persist" ); ok {
370+ request .SessionPersist = helper .Bool (v .(bool ))
360371 }
361372
362373 err := resource .Retry (writeRetryTimeout , func () * resource.RetryError {
@@ -403,6 +414,25 @@ func resourceTencentCloudTeoApplicationProxyRuleUpdate(d *schema.ResourceData, m
403414 }
404415 }
405416
417+ service := TeoService {client : meta .(* TencentCloudClient ).apiV3Conn }
418+ ctx := context .WithValue (context .TODO (), logIdKey , logId )
419+ err = resource .Retry (60 * readRetryTimeout , func () * resource.RetryError {
420+ instance , errRet := service .DescribeTeoApplicationProxyRule (ctx , zoneId , proxyId , ruleId )
421+ if errRet != nil {
422+ return retryError (errRet , InternalError )
423+ }
424+ if * instance .Status == "online" {
425+ return nil
426+ }
427+ if * instance .Status == "fail" {
428+ return resource .NonRetryableError (fmt .Errorf ("applicationProxyRule status is %v, operate failed." , * instance .Status ))
429+ }
430+ return resource .RetryableError (fmt .Errorf ("applicationProxyRule status is %v, retry..." , * instance .Status ))
431+ })
432+ if err != nil {
433+ return err
434+ }
435+
406436 return resourceTencentCloudTeoApplicationProxyRuleRead (d , meta )
407437}
408438
0 commit comments