@@ -65,15 +65,31 @@ var (
6565 "idcs_open_id" : acctest.Representation {RepType : acctest .Required , Create : `${var.idcs_access_token}` },
6666 "is_visual_builder_enabled" : acctest.Representation {RepType : acctest .Required , Create : `true` },
6767 }
68+
69+ VisualBuilderPEVbInstanceRepresentation = map [string ]interface {}{
70+ "compartment_id" : acctest.Representation {RepType : acctest .Required , Create : `${var.compartment_id}` },
71+ "display_name" : acctest.Representation {RepType : acctest .Required , Create : `displayNamePE` ,
72+ Update : `displayNamePE2` },
73+ "node_count" : acctest.Representation {RepType : acctest .Required , Create : `1` , Update : `2` },
74+ "consumption_model" : acctest.Representation {RepType : acctest .Optional , Create : `UCM` },
75+ "idcs_open_id" : acctest.Representation {RepType : acctest .Required , Create : `${var.idcs_access_token}` },
76+ "is_visual_builder_enabled" : acctest.Representation {RepType : acctest .Required , Create : `true` },
77+ "network_endpoint_details" : acctest.RepresentationGroup {RepType : acctest .Optional , Group : VisualBuilderVbInstanceNetworkEndpointDetailsRepresentation },
78+ }
79+
6880 VisualBuilderVbInstanceAlternateCustomEndpointsRepresentation = map [string ]interface {}{
6981 "hostname" : acctest.Representation {RepType : acctest .Required , Create : `hostname.com` , Update : `hostname2.com` },
7082 "certificate_secret_id" : acctest.Representation {RepType : acctest .Optional , Create : `${oci_vault_secret.test_secret.id}` },
7183 }
7284 VisualBuilderVbInstanceCustomEndpointRepresentation = map [string ]interface {}{
73- "hostname" : acctest.Representation {RepType : acctest .Required , Create : `hostname.com ` , Update : `hostname2.com ` },
85+ "hostname" : acctest.Representation {RepType : acctest .Required , Create : `test1.myvb.org ` , Update : `test2.myvb.org ` },
7486 "certificate_secret_id" : acctest.Representation {RepType : acctest .Optional , Create : `${var.oci_vault_secret_id}` },
7587 }
76-
88+ VisualBuilderVbInstanceNetworkEndpointDetailsRepresentation = map [string ]interface {}{
89+ "network_endpoint_type" : acctest.Representation {RepType : acctest .Required , Create : `PRIVATE` },
90+ "subnet_id" : acctest.Representation {RepType : acctest .Required ,
91+ Create : `${var.vb_instance_network_endpoint_details_subnet_id}` },
92+ }
7793 VisualBuilderVbInstanceResourceDependencies = DefinedTagsDependencies
7894)
7995
@@ -269,7 +285,6 @@ func TestVisualBuilderVbInstanceResource_basic(t *testing.T) {
269285 resource .TestCheckResourceAttr (singularDatasourceName , "display_name" , "displayName2" ),
270286 resource .TestCheckResourceAttr (singularDatasourceName , "freeform_tags.%" , "1" ),
271287 resource .TestCheckResourceAttrSet (singularDatasourceName , "id" ),
272- resource .TestCheckResourceAttr (singularDatasourceName , "idcs_info.#" , "1" ),
273288 resource .TestCheckResourceAttrSet (singularDatasourceName , "instance_url" ),
274289 resource .TestCheckResourceAttr (singularDatasourceName , "is_visual_builder_enabled" , "true" ),
275290 resource .TestCheckResourceAttrSet (singularDatasourceName , "management_nat_gateway_ip" ),
@@ -309,6 +324,183 @@ func TestVisualBuilderVbInstanceResource_basic(t *testing.T) {
309324 })
310325}
311326
327+ func TestVisualBuilderPrivateEndpointVbInstanceResource_basic (t * testing.T ) {
328+ httpreplay .SetScenario ("TestVisualBuilderPrivateEndpointVbInstanceResource_basic" )
329+ defer httpreplay .SaveScenario ()
330+
331+ config := acctest .ProviderTestConfig ()
332+
333+ compartmentId := utils .GetEnvSettingWithBlankDefault ("compartment_ocid" )
334+ compartmentIdVariableStr := fmt .Sprintf ("variable \" compartment_id\" { default = \" %s\" }\n " , compartmentId )
335+
336+ sbunetIdVariableStr := createVariableStr ("vb_instance_network_endpoint_details_subnet_id" , "vb_instance_network_endpoint_details_subnet_id" )
337+ nsgIdVariableStr := createVariableStr ("vb_instance_network_endpoint_details_network_security_group_id" ,
338+ "vb_instance_network_endpoint_details_network_security_group_id" )
339+
340+ resourceName := "oci_visual_builder_vb_instance.test_vb_instance"
341+ datasourceName := "data.oci_visual_builder_vb_instances.test_vb_instances"
342+ singularDatasourceName := "data.oci_visual_builder_vb_instance.test_vb_instance"
343+
344+ var resId string
345+ // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test.
346+ acctest .SaveConfigContent (config + compartmentIdVariableStr +
347+ sbunetIdVariableStr +
348+ acctest .GenerateResourceFromRepresentationMap ("oci_visual_builder_vb_instance" , "test_vb_instance" , acctest .Optional , acctest .Create , VisualBuilderPEVbInstanceRepresentation ), "visualbuilder" , "vbInstance" , t )
349+
350+ acctest .ResourceTest (t , testAccCheckVisualBuilderVbInstanceDestroy , []resource.TestStep {
351+ // verify Create
352+ {
353+ Config : config + compartmentIdVariableStr + idcsOpenIdVariableStr () +
354+ sbunetIdVariableStr +
355+ acctest .GenerateResourceFromRepresentationMap ("oci_visual_builder_vb_instance" , "test_vb_instance" ,
356+ acctest .Optional , acctest .Create , VisualBuilderPEVbInstanceRepresentation ),
357+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
358+ resource .TestCheckResourceAttr (resourceName , "compartment_id" , compartmentId ),
359+ resource .TestCheckResourceAttr (resourceName , "display_name" , "displayNamePE" ),
360+ resource .TestCheckResourceAttr (resourceName , "node_count" , "1" ),
361+ resource .TestCheckResourceAttrSet (resourceName , "id" ),
362+ resource .TestCheckResourceAttr (resourceName , "network_endpoint_details.#" , "1" ),
363+ resource .TestCheckResourceAttr (resourceName , "network_endpoint_details.0.network_endpoint_type" , "PRIVATE" ),
364+ resource .TestCheckResourceAttrSet (resourceName , "network_endpoint_details.0.subnet_id" ),
365+ resource .TestCheckResourceAttrSet (resourceName , "network_endpoint_details.0.private_endpoint_ip" ),
366+ func (s * terraform.State ) (err error ) {
367+ resId , err = acctest .FromInstanceState (s , resourceName , "id" )
368+ fmt .Printf ("%s" , resId )
369+ return err
370+ },
371+ ),
372+ },
373+ //delete before next Create
374+ {
375+ Config : config + compartmentIdVariableStr + idcsOpenIdVariableStr (),
376+ },
377+ //verify Create with optionals
378+
379+ {
380+ Config : config + compartmentIdVariableStr +
381+ idcsOpenIdVariableStr () +
382+ sbunetIdVariableStr +
383+ nsgIdVariableStr +
384+ acctest .GenerateResourceFromRepresentationMap (
385+ "oci_visual_builder_vb_instance" ,
386+ "test_vb_instance" ,
387+ acctest .Optional ,
388+ acctest .Create ,
389+ acctest .RepresentationCopyWithNewProperties (
390+ VisualBuilderPEVbInstanceRepresentation ,
391+ map [string ]interface {}{
392+ "network_endpoint_details" : acctest.RepresentationGroup {RepType : acctest .Optional ,
393+ Group : acctest .RepresentationCopyWithNewProperties (
394+ VisualBuilderVbInstanceNetworkEndpointDetailsRepresentation ,
395+ map [string ]interface {}{
396+ "network_endpoint_type" : acctest.Representation {RepType : acctest .Required , Create : `PRIVATE` },
397+ "subnet_id" : acctest.Representation {RepType : acctest .Required ,
398+ Create : `${var.vb_instance_network_endpoint_details_subnet_id}` },
399+ "network_security_group_ids" : acctest.Representation {RepType : acctest .Optional , Create : []string {`${var.vb_instance_network_endpoint_details_network_security_group_id}` }},
400+ },
401+ )},
402+ },
403+ )),
404+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
405+ resource .TestCheckResourceAttr (resourceName , "compartment_id" , compartmentId ),
406+ resource .TestCheckResourceAttr (resourceName , "consumption_model" , "UCM" ),
407+ resource .TestCheckResourceAttr (resourceName , "display_name" , "displayNamePE" ),
408+ resource .TestCheckResourceAttr (resourceName , "node_count" , "1" ),
409+ resource .TestCheckResourceAttrSet (resourceName , "id" ),
410+ resource .TestCheckResourceAttrSet (resourceName , "idcs_open_id" ),
411+ resource .TestCheckResourceAttrSet (resourceName , "instance_url" ),
412+ resource .TestCheckResourceAttr (resourceName , "network_endpoint_details.#" , "1" ),
413+ resource .TestCheckResourceAttr (resourceName , "network_endpoint_details.0.network_endpoint_type" , "PRIVATE" ),
414+ resource .TestCheckResourceAttrSet (resourceName , "network_endpoint_details.0.subnet_id" ),
415+ resource .TestCheckResourceAttrSet (resourceName , "network_endpoint_details.0.private_endpoint_ip" ),
416+ resource .TestCheckResourceAttr (resourceName , "network_endpoint_details.0.network_security_group_ids.#" , "1" ),
417+ resource .TestCheckResourceAttr (resourceName , "is_visual_builder_enabled" , "true" ),
418+ resource .TestCheckResourceAttrSet (resourceName , "state" ),
419+ func (s * terraform.State ) (err error ) {
420+ resId , err = acctest .FromInstanceState (s , resourceName , "id" )
421+ if isEnableExportCompartment , _ := strconv .ParseBool (utils .GetEnvSettingWithDefault ("enable_export_compartment" , "true" )); isEnableExportCompartment {
422+ if errExport := resourcediscovery .TestExportCompartmentWithResourceName (& resId , & compartmentId , resourceName ); errExport != nil {
423+ return errExport
424+ }
425+ }
426+ return err
427+ },
428+ ),
429+ },
430+ // verify datasource
431+ {
432+ Config : config +
433+ sbunetIdVariableStr +
434+ nsgIdVariableStr +
435+ acctest .GenerateDataSourceFromRepresentationMap (
436+ "oci_visual_builder_vb_instances" ,
437+ "test_vb_instances" ,
438+ acctest .Optional , acctest .Create ,
439+ acctest .RepresentationCopyWithNewProperties (VisualBuilderVisualBuilderVbInstanceDataSourceRepresentation ,
440+ map [string ]interface {}{
441+ "display_name" : acctest.Representation {RepType : acctest .Optional , Create : `displayNamePE` },
442+ }),
443+ ) +
444+ compartmentIdVariableStr + idcsOpenIdVariableStr () +
445+ acctest .GenerateResourceFromRepresentationMap (
446+ "oci_visual_builder_vb_instance" ,
447+ "test_vb_instance" ,
448+ acctest .Optional , acctest .Create ,
449+ VisualBuilderPEVbInstanceRepresentation ),
450+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
451+ resource .TestCheckResourceAttr (datasourceName , "compartment_id" , compartmentId ),
452+ resource .TestCheckResourceAttr (datasourceName , "display_name" , "displayNamePE" ),
453+ resource .TestCheckResourceAttr (datasourceName , "state" , "ACTIVE" ),
454+
455+ resource .TestCheckResourceAttr (datasourceName , "vb_instance_summary_collection.#" , "1" ),
456+ resource .TestCheckResourceAttr (datasourceName , "vb_instance_summary_collection.0.items.#" , "1" ),
457+ ),
458+ },
459+ //verify singular datasource
460+ {
461+ Config : config +
462+ sbunetIdVariableStr +
463+ nsgIdVariableStr +
464+ acctest .GenerateDataSourceFromRepresentationMap (
465+ "oci_visual_builder_vb_instance" ,
466+ "test_vb_instance" ,
467+ acctest .Required , acctest .Create ,
468+ acctest .RepresentationCopyWithNewProperties (
469+ VisualBuilderVisualBuilderVbInstanceSingularDataSourceRepresentation ,
470+ map [string ]interface {}{
471+ "display_name" : acctest.Representation {RepType : acctest .Optional , Create : `displayNamePE` },
472+ }),
473+ ) +
474+ compartmentIdVariableStr + idcsOpenIdVariableStr () +
475+ acctest .GenerateResourceFromRepresentationMap (
476+ "oci_visual_builder_vb_instance" ,
477+ "test_vb_instance" ,
478+ acctest .Optional ,
479+ acctest .Create ,
480+ VisualBuilderPEVbInstanceRepresentation ),
481+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
482+ resource .TestCheckResourceAttrSet (singularDatasourceName , "vb_instance_id" ),
483+ resource .TestCheckResourceAttr (singularDatasourceName , "compartment_id" , compartmentId ),
484+ resource .TestCheckResourceAttr (singularDatasourceName , "consumption_model" , "UCM" ),
485+ resource .TestCheckResourceAttr (singularDatasourceName , "display_name" , "displayNamePE" ),
486+ resource .TestCheckResourceAttrSet (singularDatasourceName , "id" ),
487+ resource .TestCheckResourceAttrSet (singularDatasourceName , "instance_url" ),
488+ resource .TestCheckResourceAttr (singularDatasourceName , "is_visual_builder_enabled" , "true" ),
489+ resource .TestCheckResourceAttr (singularDatasourceName , "network_endpoint_details.#" , "1" ),
490+ resource .TestCheckResourceAttr (singularDatasourceName , "network_endpoint_details.0.network_endpoint_type" , "PRIVATE" ),
491+ resource .TestCheckResourceAttrSet (singularDatasourceName , "network_endpoint_details.0.subnet_id" ),
492+ resource .TestCheckResourceAttrSet (singularDatasourceName , "network_endpoint_details.0.private_endpoint_ip" ),
493+ resource .TestCheckResourceAttr (singularDatasourceName , "network_endpoint_details.0.network_security_group_ids.#" , "1" ),
494+ resource .TestCheckResourceAttr (resourceName , "network_endpoint_details.0.network_security_group_ids.#" , "1" ),
495+ resource .TestCheckResourceAttr (singularDatasourceName , "node_count" , "1" ),
496+ resource .TestCheckResourceAttrSet (singularDatasourceName , "state" ),
497+ resource .TestCheckResourceAttrSet (singularDatasourceName , "time_created" ),
498+ resource .TestCheckResourceAttrSet (singularDatasourceName , "time_updated" ),
499+ ),
500+ },
501+ })
502+ }
503+
312504func testAccCheckVisualBuilderVbInstanceDestroy (s * terraform.State ) error {
313505 noResourceFound := true
314506 client := acctest .TestAccProvider .Meta ().(* tf_client.OracleClients ).VbInstanceClient ()
@@ -434,3 +626,8 @@ func idcsOpenIdVariableStr() string {
434626 idcsAccessToken := utils .GetEnvSettingWithBlankDefault ("idcs_access_token" )
435627 return fmt .Sprintf ("variable \" idcs_access_token\" { default = \" %s\" }\n " , idcsAccessToken )
436628}
629+
630+ func createVariableStr (variableName string , envVarName string ) string {
631+ defaultValue := utils .GetEnvSettingWithBlankDefault (envVarName )
632+ return fmt .Sprintf ("variable \" %s\" { default = \" %s\" }\n " , variableName , defaultValue )
633+ }
0 commit comments