@@ -102,16 +102,26 @@ var (
102102 CoreVirtualCircuitWithProviderRepresentation = map [string ]interface {}{
103103 "compartment_id" : acctest.Representation {RepType : acctest .Required , Create : `${var.compartment_id}` },
104104 "type" : acctest.Representation {RepType : acctest .Required , Create : `${var.virtual_circuit_type}` },
105- "bandwidth_shape_name" : acctest.Representation {RepType : acctest .Optional , Create : "${data.oci_core_virtual_circuit_bandwidth_shapes.test_virtual_circuit_bandwidth_shapes .virtual_circuit_bandwidth_shapes.0.name}" },
105+ "bandwidth_shape_name" : acctest.Representation {RepType : acctest .Optional , Create : "${data.oci_core_virtual_circuit_bandwidth_shapes.test_virtual_circuit_bandwidth_shapes_layer2 .virtual_circuit_bandwidth_shapes.0.name}" },
106106 "cross_connect_mappings" : acctest.RepresentationGroup {RepType : acctest .Required , Group : CoreVirtualCircuitCrossConnectMappingsRepresentation },
107107 "customer_asn" : acctest.Representation {RepType : acctest .Required , Create : `10` , Update : `11` },
108108 "display_name" : acctest.Representation {RepType : acctest .Optional , Create : `displayName` , Update : `displayName2` },
109109 "gateway_id" : acctest.Representation {RepType : acctest .Optional , Create : `${oci_core_drg.test_drg.id}` },
110- "provider_service_id" : acctest.Representation {RepType : acctest .Optional , Create : `${data.oci_core_fast_connect_provider_services.test_fast_connect_provider_services .fast_connect_provider_services.0.id}` },
110+ "provider_service_id" : acctest.Representation {RepType : acctest .Optional , Create : `${data.oci_core_fast_connect_provider_services.test_fast_connect_provider_services_layer2 .fast_connect_provider_services.0.id}` },
111111 // provider_service_key_name can only be updated by a Fast Connect Service Provider
112112 // "provider_service_key_name": acctest.Representation{RepType: acctest.Optional, Create: `d8f7a443-28c2-4dcf-996c-286351908c58`},
113113 "region" : acctest.Representation {RepType : acctest .Optional , Create : `us-phoenix-1` },
114114 }
115+ CorePrivateVirtualCircuitUpdateRepresentation = acctest .RepresentationCopyWithNewProperties (
116+ acctest .RepresentationCopyWithRemovedProperties (CoreVirtualCircuitRequiredOnlyRepresentation , []string {"cross_connect_mappings" }), map [string ]interface {}{
117+ "cross_connect_mappings" : acctest.RepresentationGroup {RepType : acctest .Required , Group : CoreVirtualCircuitCrossConnectMappingsRepresentation },
118+ })
119+
120+ CoreVirtualCircuitWithProviderLayer3Representation = acctest .RepresentationCopyWithNewProperties (
121+ acctest .RepresentationCopyWithRemovedProperties (CoreVirtualCircuitRequiredOnlyRepresentation , []string {"cross_connect_mappings" , "bandwidth_shape_name" , "provider_service_id" , "customer_asn" }), map [string ]interface {}{
122+ "bandwidth_shape_name" : acctest.Representation {RepType : acctest .Optional , Create : "${data.oci_core_virtual_circuit_bandwidth_shapes.test_virtual_circuit_bandwidth_shapes_layer3.virtual_circuit_bandwidth_shapes.0.name}" },
123+ "provider_service_id" : acctest.Representation {RepType : acctest .Optional , Create : `${data.oci_core_fast_connect_provider_services.test_fast_connect_provider_services_layer3.fast_connect_provider_services.0.id}` },
124+ })
115125
116126 CoreVirtualCircuitCrossConnectMappingsPublicRequiredOnlyRepresentation = map [string ]interface {}{
117127 "cross_connect_or_cross_connect_group_id" : acctest.Representation {RepType : acctest .Required , Create : `${oci_core_cross_connect.test_cross_connect.cross_connect_group_id}` },
@@ -132,7 +142,7 @@ var (
132142 }
133143
134144 VirtualCircuitWithProviderResourceConfigFilter = `
135- data "oci_core_fast_connect_provider_services" "test_fast_connect_provider_services " {
145+ data "oci_core_fast_connect_provider_services" "test_fast_connect_provider_services_layer2 " {
136146 #Required
137147 compartment_id = "${var.compartment_id}"
138148
@@ -141,6 +151,11 @@ data "oci_core_fast_connect_provider_services" "test_fast_connect_provider_servi
141151 values = [ "LAYER2" ]
142152 }
143153
154+ filter {
155+ name = "provider_name"
156+ values = ["OracleL2IntegDeployment"]
157+ }
158+
144159 filter {
145160 name = "private_peering_bgp_management"
146161 values = [ "CUSTOMER_MANAGED" ]
@@ -162,9 +177,44 @@ data "oci_core_fast_connect_provider_services" "test_fast_connect_provider_servi
162177 }
163178}
164179
165- data "oci_core_virtual_circuit_bandwidth_shapes" "test_virtual_circuit_bandwidth_shapes" {
180+ data "oci_core_fast_connect_provider_services" "test_fast_connect_provider_services_layer3" {
181+ #Required
182+ compartment_id = "${var.compartment_id}"
183+
184+ filter {
185+ name = "type"
186+ values = [ "LAYER3" ]
187+ }
188+
189+ filter {
190+ name = "provider_name"
191+ values = ["OracleL3IntegDeployment"]
192+ }
193+
194+ filter {
195+ name = "supported_virtual_circuit_types"
196+ values = [ "${var.virtual_circuit_type}" ]
197+ }
198+
199+ filter {
200+ name = "public_peering_bgp_management"
201+ values = [ "ORACLE_MANAGED" ]
202+ }
203+
204+ filter {
205+ name = "provider_service_key_management"
206+ values = ["PROVIDER_MANAGED"]
207+ }
208+ }
209+
210+ data "oci_core_virtual_circuit_bandwidth_shapes" "test_virtual_circuit_bandwidth_shapes_layer2" {
166211 #Required
167- provider_service_id = "${data.oci_core_fast_connect_provider_services.test_fast_connect_provider_services.fast_connect_provider_services.0.id}"
212+ provider_service_id = "${data.oci_core_fast_connect_provider_services.test_fast_connect_provider_services_layer2.fast_connect_provider_services.0.id}"
213+ }
214+
215+ data "oci_core_virtual_circuit_bandwidth_shapes" "test_virtual_circuit_bandwidth_shapes_layer3" {
216+ #Required
217+ provider_service_id = "${data.oci_core_fast_connect_provider_services.test_fast_connect_provider_services_layer3.fast_connect_provider_services.0.id}"
168218}
169219`
170220
@@ -329,10 +379,11 @@ func TestCoreVirtualCircuitResource_basic(t *testing.T) {
329379 {
330380 Config : config + compartmentIdVariableStr + VirtualCircuitResourceDependenciesCopyForVC + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCAK + secretVersionStrCKN ,
331381 },
332- // verify Create - PRIVATE Virtual Circuit with Provider
382+ // verify Create - PRIVATE Virtual Circuit with Provider Layer 2
333383 {
334384 Config : config + compartmentIdVariableStr + VirtualCircuitResourceDependenciesCopyForVC + VirtualCircuitPrivatePropertyVariables + VirtualCircuitWithProviderResourceConfigFilter +
335- acctest .GenerateResourceFromRepresentationMap ("oci_core_virtual_circuit" , "test_virtual_circuit" , acctest .Optional , acctest .Create , CoreVirtualCircuitWithProviderRepresentation ),
385+ acctest .GenerateResourceFromRepresentationMap ("oci_core_virtual_circuit" , "test_virtual_circuit" , acctest .Optional , acctest .Create ,
386+ CoreVirtualCircuitWithProviderRepresentation ),
336387 Check : acctest .ComposeAggregateTestCheckFuncWrapper (
337388 resource .TestCheckResourceAttr (resourceName , "compartment_id" , compartmentId ),
338389 resource .TestCheckResourceAttr (resourceName , "cross_connect_mappings.#" , "1" ),
@@ -350,7 +401,7 @@ func TestCoreVirtualCircuitResource_basic(t *testing.T) {
350401 },
351402 ),
352403 },
353- // verify Update - PRIVATE Virtual Circuit with Provider
404+ // verify Update - PRIVATE Virtual Circuit with Provider Layer 2
354405 {
355406 Config : config + compartmentIdVariableStr + VirtualCircuitResourceDependenciesCopyForVC + VirtualCircuitPrivatePropertyVariables + VirtualCircuitWithProviderResourceConfigFilter + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCAK + secretVersionStrCKN +
356407 acctest .GenerateResourceFromRepresentationMap ("oci_core_virtual_circuit" , "test_virtual_circuit" , acctest .Optional , acctest .Update , CoreVirtualCircuitWithProviderRepresentation ),
@@ -378,6 +429,29 @@ func TestCoreVirtualCircuitResource_basic(t *testing.T) {
378429 {
379430 Config : config + compartmentIdVariableStr + VirtualCircuitResourceDependenciesCopyForVC + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCAK + secretVersionStrCKN ,
380431 },
432+ // verify Create - PRIVATE Virtual Circuit with Provider Layer 3
433+ {
434+ Config : config + compartmentIdVariableStr + VirtualCircuitResourceDependenciesCopyForVC + VirtualCircuitPrivatePropertyVariables + VirtualCircuitWithProviderResourceConfigFilter +
435+ acctest .GenerateResourceFromRepresentationMap ("oci_core_virtual_circuit" , "test_virtual_circuit" , acctest .Optional , acctest .Create ,
436+ CoreVirtualCircuitWithProviderLayer3Representation ),
437+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
438+ resource .TestCheckResourceAttr (resourceName , "compartment_id" , compartmentId ),
439+ resource .TestCheckResourceAttr (resourceName , "cross_connect_mappings.#" , "0" ),
440+ resource .TestCheckResourceAttrSet (resourceName , "gateway_id" ),
441+ resource .TestCheckResourceAttrSet (resourceName , "provider_service_id" ),
442+ resource .TestCheckResourceAttr (resourceName , "provider_state" , "INACTIVE" ),
443+ resource .TestCheckResourceAttr (resourceName , "type" , "PRIVATE" ),
444+
445+ func (s * terraform.State ) (err error ) {
446+ resId , err = acctest .FromInstanceState (s , resourceName , "id" )
447+ return err
448+ },
449+ ),
450+ },
451+ // delete before next Create
452+ {
453+ Config : config + compartmentIdVariableStr + VirtualCircuitResourceDependenciesCopyForVC + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCAK + secretVersionStrCKN ,
454+ },
381455
382456 // verify Create - PRIVATE Virtual Circuit
383457 {
@@ -399,6 +473,28 @@ func TestCoreVirtualCircuitResource_basic(t *testing.T) {
399473 },
400474 ),
401475 },
476+ // verify Update - PRIVATE Virtual Circuit
477+ {
478+ Config : config + VirtualCircuitPrivatePropertyVariables + compartmentIdVariableStr + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCAK + secretVersionStrCKN + secretVersionStrCAKU +
479+ VirtualCircuitResourceDependenciesCopyForVC +
480+ acctest .GenerateResourceFromRepresentationMap ("oci_core_virtual_circuit" , "test_virtual_circuit" , acctest .Required , acctest .Update , CorePrivateVirtualCircuitUpdateRepresentation ),
481+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
482+ resource .TestCheckResourceAttr (resourceName , "compartment_id" , compartmentId ),
483+ resource .TestCheckResourceAttr (resourceName , "cross_connect_mappings.#" , "1" ),
484+ resource .TestCheckResourceAttrSet (resourceName , "cross_connect_mappings.0.cross_connect_or_cross_connect_group_id" ),
485+ resource .TestCheckResourceAttr (resourceName , "cross_connect_mappings.0.customer_bgp_peering_ip" , "10.0.0.20/31" ),
486+ resource .TestCheckResourceAttr (resourceName , "cross_connect_mappings.0.oracle_bgp_peering_ip" , "10.0.0.21/31" ),
487+ resource .TestCheckResourceAttr (resourceName , "cross_connect_mappings.0.vlan" , "200" ),
488+ resource .TestCheckResourceAttr (resourceName , "customer_asn" , "11" ),
489+ resource .TestCheckResourceAttrSet (resourceName , "gateway_id" ),
490+ resource .TestCheckResourceAttr (resourceName , "type" , "PRIVATE" ),
491+
492+ func (s * terraform.State ) (err error ) {
493+ resId , err = acctest .FromInstanceState (s , resourceName , "id" )
494+ return err
495+ },
496+ ),
497+ },
402498
403499 // delete before next Create
404500 {
0 commit comments