diff --git a/.changelog/3053.txt b/.changelog/3053.txt new file mode 100644 index 0000000000..fb52eb4e27 --- /dev/null +++ b/.changelog/3053.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_vpc_end_point: update `end_point_vip` params +``` diff --git a/tencentcloud/services/pls/resource_tc_vpc_end_point.go b/tencentcloud/services/pls/resource_tc_vpc_end_point.go index 8b45e44095..44e34740b2 100644 --- a/tencentcloud/services/pls/resource_tc_vpc_end_point.go +++ b/tencentcloud/services/pls/resource_tc_vpc_end_point.go @@ -51,6 +51,7 @@ func ResourceTencentCloudVpcEndPoint() *schema.Resource { "end_point_vip": { Optional: true, + Computed: true, Type: schema.TypeString, Description: "VIP of endpoint ip.", }, @@ -128,13 +129,24 @@ func resourceTencentCloudVpcEndPointCreate(d *schema.ResourceData, meta interfac } else { log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) } + + if result == nil || result.Response == nil || result.Response.EndPoint == nil { + return resource.NonRetryableError(fmt.Errorf("Create vpc endPoint failed, Response is nil.")) + } + response = result return nil }) + if err != nil { log.Printf("[CRITAL]%s create vpc endPoint failed, reason:%+v", logId, err) return err } + + if response.Response.EndPoint.EndPointId == nil { + return fmt.Errorf("EndPointId is nil.") + } + endPointId = *response.Response.EndPoint.EndPointId d.SetId(endPointId) @@ -258,20 +270,22 @@ func resourceTencentCloudVpcEndPointUpdate(d *schema.ResourceData, meta interfac if v, ok := d.GetOk("security_groups_ids"); ok { request.SecurityGroupIds = helper.InterfacesStringsPoint(v.([]interface{})) } - } - err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { - result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseVpcClient().ModifyVpcEndPointAttribute(request) - if e != nil { - return tccommon.RetryError(e) - } else { - log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseVpcClient().ModifyVpcEndPointAttribute(request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s create vpc endPoint failed, reason:%+v", logId, err) + return err } - return nil - }) - if err != nil { - log.Printf("[CRITAL]%s create vpc endPoint failed, reason:%+v", logId, err) - return err } return resourceTencentCloudVpcEndPointRead(d, meta) diff --git a/tencentcloud/services/pls/resource_tc_vpc_end_point.md b/tencentcloud/services/pls/resource_tc_vpc_end_point.md index f5b47f880c..031d453f83 100644 --- a/tencentcloud/services/pls/resource_tc_vpc_end_point.md +++ b/tencentcloud/services/pls/resource_tc_vpc_end_point.md @@ -1,12 +1,12 @@ -Provides a resource to create a vpc end_point +Provides a resource to create a VPC end point Example Usage ```hcl -resource "tencentcloud_vpc_end_point" "end_point" { +resource "tencentcloud_vpc_end_point" "example" { vpc_id = "vpc-391sv4w3" subnet_id = "subnet-ljyn7h30" - end_point_name = "terraform-test" + end_point_name = "tf-example" end_point_service_id = "vpcsvc-69y13tdb" end_point_vip = "10.0.2.1" @@ -20,8 +20,8 @@ resource "tencentcloud_vpc_end_point" "end_point" { Import -vpc end_point can be imported using the id, e.g. +VPC end point can be imported using the id, e.g. ``` -terraform import tencentcloud_vpc_end_point.end_point end_point_id +terraform import tencentcloud_vpc_end_point.example vpce-ntv3vy9k ``` \ No newline at end of file diff --git a/website/docs/r/vpc_end_point.html.markdown b/website/docs/r/vpc_end_point.html.markdown index 8933ba0dbb..3603e6d61f 100644 --- a/website/docs/r/vpc_end_point.html.markdown +++ b/website/docs/r/vpc_end_point.html.markdown @@ -4,20 +4,20 @@ layout: "tencentcloud" page_title: "TencentCloud: tencentcloud_vpc_end_point" sidebar_current: "docs-tencentcloud-resource-vpc_end_point" description: |- - Provides a resource to create a vpc end_point + Provides a resource to create a VPC end point --- # tencentcloud_vpc_end_point -Provides a resource to create a vpc end_point +Provides a resource to create a VPC end point ## Example Usage ```hcl -resource "tencentcloud_vpc_end_point" "end_point" { +resource "tencentcloud_vpc_end_point" "example" { vpc_id = "vpc-391sv4w3" subnet_id = "subnet-ljyn7h30" - end_point_name = "terraform-test" + end_point_name = "tf-example" end_point_service_id = "vpcsvc-69y13tdb" end_point_vip = "10.0.2.1" @@ -53,9 +53,9 @@ In addition to all arguments above, the following attributes are exported: ## Import -vpc end_point can be imported using the id, e.g. +VPC end point can be imported using the id, e.g. ``` -terraform import tencentcloud_vpc_end_point.end_point end_point_id +terraform import tencentcloud_vpc_end_point.example vpce-ntv3vy9k ```