diff --git a/tencentcloud/services/ccn/resource_tc_ccn.go b/tencentcloud/services/ccn/resource_tc_ccn.go index dcbf38cb23..06641d490e 100644 --- a/tencentcloud/services/ccn/resource_tc_ccn.go +++ b/tencentcloud/services/ccn/resource_tc_ccn.go @@ -266,7 +266,7 @@ func resourceTencentCloudCcnUpdate(d *schema.ResourceData, meta interface{}) err if d.HasChange("description") { if temp, ok := d.GetOk("description"); ok { - request.CcnName = helper.String(temp.(string)) + request.CcnDescription = helper.String(temp.(string)) } change = true diff --git a/tencentcloud/services/ccn/resource_tc_ccn_routes_test.go b/tencentcloud/services/ccn/resource_tc_ccn_routes_test.go index d3f71f2bd0..a24df73762 100644 --- a/tencentcloud/services/ccn/resource_tc_ccn_routes_test.go +++ b/tencentcloud/services/ccn/resource_tc_ccn_routes_test.go @@ -28,29 +28,106 @@ func TestAccTencentCloudCcnRoutesResource_basic(t *testing.T) { ), }, { - ResourceName: "tencentcloud_ccn_routes.ccn_routes", - ImportState: true, - ImportStateVerify: true, + ResourceName: "tencentcloud_ccn_routes.ccn_routes", + ImportState: true, }, }, }) } const testAccVpcCcnRoutes = ` +resource "tencentcloud_ccn" "ccn" { + name = "tf-test-routes" + description = "tf-test-routes-des" + qos = "AG" +} + +resource "tencentcloud_ccn_route_table" "table" { + ccn_id = tencentcloud_ccn.ccn.id + name = "tf-test-routes" + description = "desc." +} + +data "tencentcloud_availability_zones" "zones" {} + +resource "tencentcloud_vpc" "vpc" { + name = "vpc-ccn-routes" + cidr_block = "10.0.0.0/16" +} + +resource "tencentcloud_subnet" "subnet" { + vpc_id = tencentcloud_vpc.vpc.id + name = "subnet-ccn-routes" + cidr_block = "10.0.0.0/16" + availability_zone = data.tencentcloud_availability_zones.zones.zones.0.name + is_multicast = false +} + +resource "tencentcloud_ccn_attachment" "attachment" { + ccn_id = tencentcloud_ccn.ccn.id + instance_type = "VPC" + instance_id = tencentcloud_vpc.vpc.id + instance_region = "ap-guangzhou" + route_table_id = tencentcloud_ccn_route_table.table.id +} + +data "tencentcloud_ccn_routes" "routes" { + ccn_id = tencentcloud_ccn.ccn.id + depends_on = [tencentcloud_ccn_attachment.attachment] +} resource "tencentcloud_ccn_routes" "ccn_routes" { - ccn_id = "ccn-0bbkedsb" - route_id = "ccnr-9sqye2qg" + ccn_id = tencentcloud_ccn.ccn.id + route_id = data.tencentcloud_ccn_routes.routes.route_list.0.route_id switch = "off" } ` const testAccVpcCcnRoutesUpdate = ` +resource "tencentcloud_ccn" "ccn" { + name = "tf-test-routes" + description = "tf-test-routes-des" + qos = "AG" +} + +resource "tencentcloud_ccn_route_table" "table" { + ccn_id = tencentcloud_ccn.ccn.id + name = "tf-test-routes" + description = "desc." +} + +data "tencentcloud_availability_zones" "zones" {} + +resource "tencentcloud_vpc" "vpc" { + name = "vpc-ccn-routes" + cidr_block = "10.0.0.0/16" +} + +resource "tencentcloud_subnet" "subnet" { + vpc_id = tencentcloud_vpc.vpc.id + name = "subnet-ccn-routes" + cidr_block = "10.0.0.0/16" + availability_zone = data.tencentcloud_availability_zones.zones.zones.0.name + is_multicast = false +} + +resource "tencentcloud_ccn_attachment" "attachment" { + ccn_id = tencentcloud_ccn.ccn.id + instance_type = "VPC" + instance_id = tencentcloud_vpc.vpc.id + instance_region = "ap-guangzhou" + route_table_id = tencentcloud_ccn_route_table.table.id +} + +data "tencentcloud_ccn_routes" "routes" { + ccn_id = tencentcloud_ccn.ccn.id + depends_on = [tencentcloud_ccn_attachment.attachment] +} resource "tencentcloud_ccn_routes" "ccn_routes" { - ccn_id = "ccn-0bbkedsb" - route_id = "ccnr-9sqye2qg" + ccn_id = tencentcloud_ccn.ccn.id + route_id = data.tencentcloud_ccn_routes.routes.route_list.0.route_id switch = "on" } diff --git a/tencentcloud/services/vpn/data_source_tc_vpn_default_health_check_ip_test.go b/tencentcloud/services/vpn/data_source_tc_vpn_default_health_check_ip_test.go index 07ae511d64..f78bebbb46 100644 --- a/tencentcloud/services/vpn/data_source_tc_vpn_default_health_check_ip_test.go +++ b/tencentcloud/services/vpn/data_source_tc_vpn_default_health_check_ip_test.go @@ -26,8 +26,22 @@ func TestAccTencentCloudVpnDefaultHealthCheckIpDataSource_basic(t *testing.T) { const testAccVpnDefaultHealthCheckIpDataSource = ` +data "tencentcloud_vpc_instances" "foo" { + name = "Default-VPC" +} + +resource "tencentcloud_vpn_gateway" "my_cgw" { + name = "terraform_test_health_check" + vpc_id = data.tencentcloud_vpc_instances.foo.instance_list.0.vpc_id + bandwidth = 10 + + tags = { + test = "tf" + } +} + data "tencentcloud_vpn_default_health_check_ip" "default_health_check_ip" { - vpn_gateway_id = "vpngw-gt8bianl" + vpn_gateway_id = tencentcloud_vpn_gateway.my_cgw.id } ` diff --git a/tencentcloud/services/vpn/resource_tc_vpn_connection.go b/tencentcloud/services/vpn/resource_tc_vpn_connection.go index 423c25028c..049905a7bf 100644 --- a/tencentcloud/services/vpn/resource_tc_vpn_connection.go +++ b/tencentcloud/services/vpn/resource_tc_vpn_connection.go @@ -136,12 +136,14 @@ func ResourceTencentCloudVpnConnection() *schema.Resource { "ike_local_fqdn_name": { Type: schema.TypeString, Optional: true, + Computed: true, ConflictsWith: []string{"ike_local_address"}, Description: "Local FQDN name of the IKE operation specification.", }, "ike_remote_fqdn_name": { Type: schema.TypeString, Optional: true, + Computed: true, ConflictsWith: []string{"ike_remote_address"}, Description: "Remote FQDN name of the IKE operation specification.", }, diff --git a/tencentcloud/services/vpn/resource_tc_vpn_connection_reset_test.go b/tencentcloud/services/vpn/resource_tc_vpn_connection_reset_test.go index f19df71d94..4553b9afd2 100644 --- a/tencentcloud/services/vpn/resource_tc_vpn_connection_reset_test.go +++ b/tencentcloud/services/vpn/resource_tc_vpn_connection_reset_test.go @@ -25,10 +25,65 @@ func TestAccTencentCloudVpnConnectionResetResource_basic(t *testing.T) { } const testAccVpnConnectionReset = ` +resource "tencentcloud_vpn_customer_gateway" "cgw" { + name = "terraform_test_reset" + public_ip_address = "1.3.3.3" + +} + +# Create VPC and Subnet +data "tencentcloud_vpc_instances" "foo" { + name = "Default-VPC" +} + +resource "tencentcloud_vpn_gateway" "vpn" { + name = "terraform_test_reset" + vpc_id = data.tencentcloud_vpc_instances.foo.instance_list.0.vpc_id + bandwidth = 5 + zone = "ap-guangzhou-3" + + tags = { + test = "test" + } +} +resource "tencentcloud_vpn_connection" "connection" { + name = "vpn_connection_test_reset" + vpc_id = data.tencentcloud_vpc_instances.foo.instance_list.0.vpc_id + vpn_gateway_id = tencentcloud_vpn_gateway.vpn.id + customer_gateway_id = tencentcloud_vpn_customer_gateway.cgw.id + pre_share_key = "test" + ike_proto_encry_algorithm = "3DES-CBC" + ike_proto_authen_algorithm = "MD5" + ike_local_identity = "ADDRESS" + ike_local_address = tencentcloud_vpn_gateway.vpn.public_ip_address + ike_remote_identity = "ADDRESS" + ike_remote_address = tencentcloud_vpn_customer_gateway.cgw.public_ip_address + ike_dh_group_name = "GROUP1" + ike_sa_lifetime_seconds = 86400 + ike_version = "IKEV1" + ipsec_encrypt_algorithm = "3DES-CBC" + ipsec_integrity_algorithm = "MD5" + ipsec_sa_lifetime_seconds = 3600 + ipsec_pfs_dh_group = "DH-GROUP1" + ipsec_sa_lifetime_traffic = 2560 + dpd_enable = 1 + dpd_timeout = "30" + dpd_action = "clear" + security_group_policy { + local_cidr_block = "172.16.0.0/16" + remote_cidr_block = ["3.3.3.0/32", ] + } + tags = { + test = "test" + } + enable_health_check = true + health_check_local_ip = "192.168.0.2" + health_check_remote_ip = "3.3.3.2" +} resource "tencentcloud_vpn_connection_reset" "vpn_connection_reset" { - vpn_gateway_id = "vpngw-gt8bianl" - vpn_connection_id = "vpnx-kme2tx8m" + vpn_gateway_id = tencentcloud_vpn_gateway.vpn.id + vpn_connection_id = tencentcloud_vpn_connection.connection.id } ` diff --git a/tencentcloud/services/vpn/resource_tc_vpn_customer_gateway_configuration_download_test.go b/tencentcloud/services/vpn/resource_tc_vpn_customer_gateway_configuration_download_test.go index 3a8cb9f2ae..f970494aef 100644 --- a/tencentcloud/services/vpn/resource_tc_vpn_customer_gateway_configuration_download_test.go +++ b/tencentcloud/services/vpn/resource_tc_vpn_customer_gateway_configuration_download_test.go @@ -25,10 +25,65 @@ func TestAccTencentCloudVpnCustomerGatewayConfigurationDownloadResource_basic(t } const testAccVpcVpnCustomerGatewayConfigurationDownload = ` +resource "tencentcloud_vpn_customer_gateway" "cgw" { + name = "terraform_test_download" + public_ip_address = "1.3.3.3" + +} + +# Create VPC and Subnet +data "tencentcloud_vpc_instances" "foo" { + name = "Default-VPC" +} + +resource "tencentcloud_vpn_gateway" "vpn" { + name = "terraform_test_download" + vpc_id = data.tencentcloud_vpc_instances.foo.instance_list.0.vpc_id + bandwidth = 5 + zone = "ap-guangzhou-3" + + tags = { + test = "test" + } +} +resource "tencentcloud_vpn_connection" "connection" { + name = "test_download" + vpc_id = data.tencentcloud_vpc_instances.foo.instance_list.0.vpc_id + vpn_gateway_id = tencentcloud_vpn_gateway.vpn.id + customer_gateway_id = tencentcloud_vpn_customer_gateway.cgw.id + pre_share_key = "test" + ike_proto_encry_algorithm = "3DES-CBC" + ike_proto_authen_algorithm = "MD5" + ike_local_identity = "ADDRESS" + ike_local_address = tencentcloud_vpn_gateway.vpn.public_ip_address + ike_remote_identity = "ADDRESS" + ike_remote_address = tencentcloud_vpn_customer_gateway.cgw.public_ip_address + ike_dh_group_name = "GROUP1" + ike_sa_lifetime_seconds = 86400 + ike_version = "IKEV1" + ipsec_encrypt_algorithm = "3DES-CBC" + ipsec_integrity_algorithm = "MD5" + ipsec_sa_lifetime_seconds = 3600 + ipsec_pfs_dh_group = "DH-GROUP1" + ipsec_sa_lifetime_traffic = 2560 + dpd_enable = 1 + dpd_timeout = "30" + dpd_action = "clear" + security_group_policy { + local_cidr_block = "172.16.0.0/16" + remote_cidr_block = ["3.3.3.0/32", ] + } + tags = { + test = "test" + } + enable_health_check = true + health_check_local_ip = "192.168.0.2" + health_check_remote_ip = "3.3.3.2" +} resource "tencentcloud_vpn_customer_gateway_configuration_download" "vpn_customer_gateway_configuration_download" { - vpn_gateway_id = "vpngw-gt8bianl" - vpn_connection_id = "vpnx-kme2tx8m" + vpn_gateway_id = tencentcloud_vpn_gateway.vpn.id + vpn_connection_id = tencentcloud_vpn_connection.connection.id customer_gateway_vendor { platform = "comware" software_version = "V1.0" diff --git a/tencentcloud/services/vpn/resource_tc_vpn_gateway_route_test.go b/tencentcloud/services/vpn/resource_tc_vpn_gateway_route_test.go index ec8404d63b..5fdccbab68 100644 --- a/tencentcloud/services/vpn/resource_tc_vpn_gateway_route_test.go +++ b/tencentcloud/services/vpn/resource_tc_vpn_gateway_route_test.go @@ -109,31 +109,135 @@ func testAccCheckVpnGatewayRouteExists(n string) resource.TestCheckFunc { } const testVpnGatewayRouteCreate = tcacctest.DefaultVpnDataSource + ` -# Create VPC +resource "tencentcloud_vpn_customer_gateway" "cgw" { + name = "terraform_test" + public_ip_address = "1.3.3.3" + +} + +# Create VPC and Subnet data "tencentcloud_vpc_instances" "foo" { name = "Default-VPC" } +resource "tencentcloud_vpn_gateway" "vpn" { + name = "terraform_update" + vpc_id = data.tencentcloud_vpc_instances.foo.instance_list.0.vpc_id + bandwidth = 5 + zone = "ap-guangzhou-3" + + tags = { + test = "test" + } +} + +resource "tencentcloud_vpn_connection" "connection" { + name = "vpn_connection_test" + vpc_id = data.tencentcloud_vpc_instances.foo.instance_list.0.vpc_id + vpn_gateway_id = tencentcloud_vpn_gateway.vpn.id + customer_gateway_id = tencentcloud_vpn_customer_gateway.cgw.id + pre_share_key = "test" + ike_proto_encry_algorithm = "3DES-CBC" + ike_proto_authen_algorithm = "MD5" + ike_local_identity = "ADDRESS" + ike_local_address = tencentcloud_vpn_gateway.vpn.public_ip_address + ike_remote_identity = "ADDRESS" + ike_remote_address = tencentcloud_vpn_customer_gateway.cgw.public_ip_address + ike_dh_group_name = "GROUP1" + ike_sa_lifetime_seconds = 86400 + ike_version = "IKEV1" + ipsec_encrypt_algorithm = "3DES-CBC" + ipsec_integrity_algorithm = "MD5" + ipsec_sa_lifetime_seconds = 3600 + ipsec_pfs_dh_group = "DH-GROUP1" + ipsec_sa_lifetime_traffic = 2560 + dpd_enable = 1 + dpd_timeout = "30" + dpd_action = "clear" + security_group_policy { + local_cidr_block = "172.16.0.0/16" + remote_cidr_block = ["3.3.3.0/32", ] + } + tags = { + test = "test" + } + enable_health_check = true + health_check_local_ip = "192.168.0.2" + health_check_remote_ip = "3.3.3.2" +} + resource "tencentcloud_vpn_gateway_route" "route1" { - vpn_gateway_id = data.tencentcloud_vpn_gateways.foo.gateway_list.0.id + vpn_gateway_id = tencentcloud_vpn_gateway.vpn.id destination_cidr_block = "10.0.0.0/16" instance_type = "VPNCONN" - instance_id = data.tencentcloud_vpn_connections.conns.connection_list.0.id + instance_id = tencentcloud_vpn_connection.connection.id priority = "100" status = "ENABLE" } ` const testVpnGatewayRouteUpdate = tcacctest.DefaultVpnDataSource + ` -# Create VPC +resource "tencentcloud_vpn_customer_gateway" "cgw" { + name = "terraform_test" + public_ip_address = "1.3.3.3" + +} + +# Create VPC and Subnet data "tencentcloud_vpc_instances" "foo" { name = "Default-VPC" } +resource "tencentcloud_vpn_gateway" "vpn" { + name = "terraform_update" + vpc_id = data.tencentcloud_vpc_instances.foo.instance_list.0.vpc_id + bandwidth = 5 + zone = "ap-guangzhou-3" + + tags = { + test = "test" + } +} + +resource "tencentcloud_vpn_connection" "connection" { + name = "vpn_connection_test" + vpc_id = data.tencentcloud_vpc_instances.foo.instance_list.0.vpc_id + vpn_gateway_id = tencentcloud_vpn_gateway.vpn.id + customer_gateway_id = tencentcloud_vpn_customer_gateway.cgw.id + pre_share_key = "test" + ike_proto_encry_algorithm = "3DES-CBC" + ike_proto_authen_algorithm = "MD5" + ike_local_identity = "ADDRESS" + ike_local_address = tencentcloud_vpn_gateway.vpn.public_ip_address + ike_remote_identity = "ADDRESS" + ike_remote_address = tencentcloud_vpn_customer_gateway.cgw.public_ip_address + ike_dh_group_name = "GROUP1" + ike_sa_lifetime_seconds = 86400 + ike_version = "IKEV1" + ipsec_encrypt_algorithm = "3DES-CBC" + ipsec_integrity_algorithm = "MD5" + ipsec_sa_lifetime_seconds = 3600 + ipsec_pfs_dh_group = "DH-GROUP1" + ipsec_sa_lifetime_traffic = 2560 + dpd_enable = 1 + dpd_timeout = "30" + dpd_action = "clear" + security_group_policy { + local_cidr_block = "172.16.0.0/16" + remote_cidr_block = ["3.3.3.0/32", ] + } + tags = { + test = "test" + } + enable_health_check = true + health_check_local_ip = "192.168.0.2" + health_check_remote_ip = "3.3.3.2" +} + resource "tencentcloud_vpn_gateway_route" "route1" { - vpn_gateway_id = data.tencentcloud_vpn_gateways.foo.gateway_list.0.id + vpn_gateway_id = tencentcloud_vpn_gateway.vpn.id destination_cidr_block = "10.0.0.0/16" instance_type = "VPNCONN" - instance_id = data.tencentcloud_vpn_connections.conns.connection_list.0.id + instance_id = tencentcloud_vpn_connection.connection.id priority = "100" status = "DISABLE" } diff --git a/tencentcloud/services/vpn/resource_tc_vpn_gateway_ssl_client_cert_test.go b/tencentcloud/services/vpn/resource_tc_vpn_gateway_ssl_client_cert_test.go index 6637e913e2..8f8c89c192 100644 --- a/tencentcloud/services/vpn/resource_tc_vpn_gateway_ssl_client_cert_test.go +++ b/tencentcloud/services/vpn/resource_tc_vpn_gateway_ssl_client_cert_test.go @@ -28,15 +28,25 @@ func TestAccTencentCloudVpnGatewaySslClientCertResource_basic(t *testing.T) { ), }, { - ResourceName: "tencentcloud_vpn_gateway_ssl_client_cert.vpn_gateway_ssl_client_cert", - ImportState: true, - ImportStateVerify: true, + ResourceName: "tencentcloud_vpn_gateway_ssl_client_cert.vpn_gateway_ssl_client_cert", + ImportState: true, }, }, }) } const testAccVpnGatewaySslClientCert = ` +data "tencentcloud_vpc_instances" "foo" { + name = "Default-VPC" +} + +resource "tencentcloud_vpn_gateway" "my_cgw" { + name = "terraform_test_cert" + bandwidth = 5 + zone = "ap-guangzhou-3" + type = "SSL" + vpc_id = data.tencentcloud_vpc_instances.foo.instance_list.0.vpc_id +} resource "tencentcloud_vpn_ssl_server" "server" { local_address = [ @@ -44,10 +54,10 @@ resource "tencentcloud_vpn_ssl_server" "server" { ] remote_address = "173.16.1.0/24" ssl_vpn_server_name = "tf-vpn-ssl-server" - vpn_gateway_id = "vpngw-mll9np1x" + vpn_gateway_id = tencentcloud_vpn_gateway.my_cgw.id ssl_vpn_protocol = "UDP" ssl_vpn_port = 1194 - integrity_algorithm = "MD5" + integrity_algorithm = "SHA1" encrypt_algorithm = "AES-128-CBC" compress = false } @@ -65,6 +75,17 @@ resource "tencentcloud_vpn_gateway_ssl_client_cert" "vpn_gateway_ssl_client_cert ` const testAccVpnGatewaySslClientCertUpdate = ` +data "tencentcloud_vpc_instances" "foo" { + name = "Default-VPC" +} + +resource "tencentcloud_vpn_gateway" "my_cgw" { + name = "terraform_test_cert" + bandwidth = 5 + zone = "ap-guangzhou-3" + type = "SSL" + vpc_id = data.tencentcloud_vpc_instances.foo.instance_list.0.vpc_id +} resource "tencentcloud_vpn_ssl_server" "server" { local_address = [ @@ -72,10 +93,10 @@ resource "tencentcloud_vpn_ssl_server" "server" { ] remote_address = "173.16.1.0/24" ssl_vpn_server_name = "tf-vpn-ssl-server" - vpn_gateway_id = "vpngw-mll9np1x" + vpn_gateway_id = tencentcloud_vpn_gateway.my_cgw.id ssl_vpn_protocol = "UDP" ssl_vpn_port = 1194 - integrity_algorithm = "MD5" + integrity_algorithm = "SHA1" encrypt_algorithm = "AES-128-CBC" compress = false }