@@ -468,4 +468,327 @@ data "oci_database_management_managed_database_preferred_credential" "test_manag
468468 # Required
469469 credential_name = var. managed_database_preferred_credential_credential_name
470470 managed_database_id = oci_database_management_managed_database. test_managed_database . id
471- }
471+ }
472+
473+ # ###################### External DB System #########################
474+ variable "external_db_system_discovery_display_name" {
475+ default = " EXAMPLE-displayName-Value"
476+ }
477+
478+ variable "agent_id" {
479+ default = " ocid1.test.oc1..<unique_ID>EXAMPLE-agentId-Value"
480+ }
481+
482+ variable "external_db_system_database_management_config_license_model" {
483+ default = " LICENSE_INCLUDED"
484+ }
485+
486+ variable "external_db_system_display_name" {
487+ default = " EXAMPLE-displayName-Value"
488+ }
489+
490+ variable "db_host_name" {
491+ default = " EXAMPLE-hostName-Value"
492+ }
493+
494+ variable "db_port" {
495+ default = " 1521"
496+ }
497+
498+ variable "db_service_name" {
499+ default = " EXAMPLE-service-Value"
500+ }
501+
502+ variable "db_user_name" {
503+ default = " EXAMPLE-userName-Value"
504+ }
505+
506+ variable "db_password_secret_id" {
507+ default = " ocid1.test.oc1..<unique_ID>EXAMPLE-passwordSecretId-Value"
508+ }
509+
510+ variable "db_credential_name" {
511+ default = " EXAMPLE-dbCredName-Value"
512+ }
513+
514+ variable "asm_host_name" {
515+ default = " EXAMPLE-hostName-Value"
516+ }
517+
518+ variable "asm_port" {
519+ default = " 1521"
520+ }
521+
522+ variable "asm_service_name" {
523+ default = " EXAMPLE-service-Value"
524+ }
525+
526+ variable "asm_user_name" {
527+ default = " EXAMPLE-userName-Value"
528+ }
529+
530+ variable "asm_password_secret_id" {
531+ default = " ocid1.test.oc1..<unique_ID>EXAMPLE-passwordSecretId-Value"
532+ }
533+
534+ variable "asm_credential_name" {
535+ default = " EXAMPLE-asmCredName-Value"
536+ }
537+
538+ variable "external_asm_connector_display_name" {
539+ default = " asmConnectorName"
540+ }
541+
542+ variable "external_listener_connector_display_name" {
543+ default = " listenerConnectorName"
544+ }
545+
546+ variable "connector_agent_id" {
547+ default = " ocid1.test.oc1..<unique_ID>EXAMPLE-agentId-Value"
548+ }
549+
550+ # Create a new ExternalDbSystemDiscovery resource and discover an external DB System and its components.
551+ # Also add a connector to the discovered Oracle Container Database (CDB).
552+ resource "oci_database_management_external_db_system_discovery" "test_external_db_system_discovery" {
553+ # Required
554+ agent_id = var. agent_id
555+ compartment_id = var. compartment_id
556+
557+ # Optional
558+ display_name = var. external_db_system_discovery_display_name
559+
560+ # Patch the Discovery resource and add connector to the database component
561+ patch_operations {
562+ operation = " MERGE"
563+ selection = " discoveredComponents[?componentType == 'DATABASE'] | [0]"
564+ value {
565+ connector {
566+ agent_id = var. agent_id
567+ connection_info {
568+ component_type = " DATABASE"
569+ connection_credentials {
570+ credential_name = var. db_credential_name
571+ credential_type = " DETAILS"
572+ password_secret_id = var. db_password_secret_id
573+ role = " NORMAL"
574+ user_name = var. db_user_name
575+ }
576+ connection_string {
577+ host_name = var. db_host_name
578+ port = var. db_port
579+ protocol = " TCP"
580+ service = var. db_service_name
581+ }
582+ }
583+ connector_type = " MACS"
584+ display_name = " EXAMPLE-displayName-Value"
585+ }
586+ is_selected_for_monitoring = " true"
587+ }
588+ }
589+
590+ # Deselect the PDBs
591+ patch_operations {
592+ operation = " MERGE"
593+ selection = " discoveredComponents[?componentType == 'DATABASE'].pluggableDatabases"
594+ value {
595+ is_selected_for_monitoring = " false"
596+ }
597+ }
598+ }
599+
600+ # List ExternalDbSystemDiscovery resources
601+ data "oci_database_management_external_db_system_discoveries" "test_external_db_system_discoveries" {
602+ # Required
603+ compartment_id = var. compartment_id
604+
605+ # Optional
606+ display_name = var. external_db_system_discovery_display_name
607+ }
608+
609+ # Create a new ExternalDbSystem resource from ExternalDbSystemDiscovery resource
610+ resource "oci_database_management_external_db_system" "test_external_db_system" {
611+ # Required
612+ compartment_id = var. compartment_id
613+ db_system_discovery_id = oci_database_management_external_db_system_discovery. test_external_db_system_discovery . id
614+
615+ # Optional
616+ database_management_config {
617+ # Required
618+ license_model = var. external_db_system_database_management_config_license_model
619+ }
620+ display_name = var. external_db_system_display_name
621+ }
622+
623+ # List ExternalDbSystem resources
624+ data "oci_database_management_external_db_systems" "test_external_db_systems" {
625+ # Required
626+ compartment_id = var. compartment_id
627+
628+ # Optional
629+ display_name = var. external_db_system_display_name
630+ }
631+
632+ # Add connector to an ExternalAsm resource
633+ resource "oci_database_management_external_asm" "test_external_asm" {
634+ external_asm_id = data. oci_database_management_external_asms . test_external_asms . external_asm_collection . 0 . items . 0 . id
635+ external_connector_id = oci_database_management_external_db_system_connector. test_external_asm_connector . id
636+ }
637+
638+ # List ExternalAsms in ExternalDbSystem
639+ data "oci_database_management_external_asms" "test_external_asms" {
640+ # Required
641+ external_db_system_id = oci_database_management_external_db_system. test_external_db_system . id
642+
643+ # Optional
644+ compartment_id = var. compartment_id
645+ }
646+
647+ # Get configuration details for ExternalAsm
648+ data "oci_database_management_external_asm_configuration" "test_external_asm_configuration" {
649+ # Required
650+ external_asm_id = oci_database_management_external_asm. test_external_asm . id
651+ }
652+
653+ # List ASM disk groups in ExternalAsm
654+ data "oci_database_management_external_asm_disk_groups" "test_external_asm_disk_groups" {
655+ # Required
656+ external_asm_id = oci_database_management_external_asm. test_external_asm . id
657+ }
658+
659+ # List ASM users in ExternalAsm
660+ data "oci_database_management_external_asm_users" "test_external_asm_users" {
661+ # Required
662+ external_asm_id = oci_database_management_external_asm. test_external_asm . id
663+ }
664+
665+ # List ExternalAsmInstances in ExternalAsm
666+ data "oci_database_management_external_asm_instances" "test_external_asm_instances" {
667+ # Required
668+ external_asm_id = oci_database_management_external_asm. test_external_asm . id
669+
670+ # Optional
671+ compartment_id = var. compartment_id
672+ }
673+
674+ # List ExternalClusters in ExternalDbSystem
675+ data "oci_database_management_external_clusters" "test_external_clusters" {
676+ # Required
677+ external_db_system_id = oci_database_management_external_db_system. test_external_db_system . id
678+
679+ # Optional
680+ compartment_id = var. compartment_id
681+ }
682+
683+ # List ExternalClusterInstances in ExternalCluster
684+ data "oci_database_management_external_cluster_instances" "test_external_cluster_instances" {
685+ # Required
686+ external_cluster_id = data. oci_database_management_external_clusters . test_external_clusters . external_cluster_collection . 0 . items . 0 . id
687+
688+ # Optional
689+ compartment_id = var. compartment_id
690+ }
691+
692+ # List ExternalDatabases in ExternalDbSystem
693+ data "oci_database_management_external_databases" "test_external_databases" {
694+ # Required
695+ external_db_system_id = oci_database_management_external_db_system. test_external_db_system . id
696+
697+ # Optional
698+ compartment_id = var. compartment_id
699+ }
700+
701+ # List ExternalDbHomes in ExternalDbSystem
702+ data "oci_database_management_external_db_homes" "test_external_db_homes" {
703+ # Required
704+ external_db_system_id = oci_database_management_external_db_system. test_external_db_system . id
705+
706+ # Optional
707+ compartment_id = var. compartment_id
708+ }
709+
710+ # List ExternalDbNodes in ExternalDbSystem
711+ data "oci_database_management_external_db_nodes" "test_external_db_nodes" {
712+ # Required
713+ external_db_system_id = oci_database_management_external_db_system. test_external_db_system . id
714+
715+ # Optional
716+ compartment_id = var. compartment_id
717+ }
718+
719+ # List ExternalListeners in ExternalDbSystem
720+ data "oci_database_management_external_listeners" "test_external_listeners" {
721+ # Required
722+ external_db_system_id = oci_database_management_external_db_system. test_external_db_system . id
723+
724+ # Optional
725+ compartment_id = var. compartment_id
726+ }
727+
728+ resource "oci_database_management_external_listener" "test_external_listener" {
729+ # Required
730+ external_listener_id = data. oci_database_management_external_listeners . test_external_listeners . external_listener_collection . 0 . items . 0 . id
731+ external_connector_id = oci_database_management_external_db_system_connector. test_external_listener_connector . id
732+ }
733+
734+ # List ExternalListenerServices for ExternalListener
735+ data "oci_database_management_external_listener_services" "test_external_listener_services" {
736+ # Required
737+ external_listener_id = oci_database_management_external_listener. test_external_listener . id
738+ managed_database_id = oci_database_management_external_listener. test_external_listener . serviced_databases . 0 . id
739+ }
740+
741+ # Create a new Management Agent based ExternalDbSystemConnector
742+ resource "oci_database_management_external_db_system_connector" "test_external_asm_connector" {
743+ # Required
744+ connector_type = " MACS"
745+ external_db_system_id = oci_database_management_external_db_system. test_external_db_system . id
746+ agent_id = var. connector_agent_id
747+
748+ # Optional
749+ display_name = var. external_asm_connector_display_name
750+ connection_info {
751+ component_type = " ASM"
752+ connection_credentials {
753+ credential_name = var. asm_credential_name
754+ credential_type = " DETAILS"
755+ password_secret_id = var. asm_password_secret_id
756+ role = " SYSASM"
757+ user_name = var. asm_user_name
758+ }
759+ connection_string {
760+ hosts = [var . asm_host_name ]
761+ port = var. asm_port
762+ protocol = " TCP"
763+ service = var. asm_service_name
764+ }
765+ }
766+ }
767+
768+ resource "oci_database_management_external_db_system_connector" "test_external_listener_connector" {
769+ # Required
770+ connector_type = " MACS"
771+ external_db_system_id = oci_database_management_external_db_system. test_external_db_system . id
772+ agent_id = var. connector_agent_id
773+
774+ # Optional
775+ display_name = var. external_listener_connector_display_name
776+ }
777+
778+ # List ExternalDbSystemConnector resources in ExternalDbSystem
779+ data "oci_database_management_external_db_system_connectors" "test_external_db_system_connectors" {
780+ # Required
781+ external_db_system_id = oci_database_management_external_db_system. test_external_db_system . id
782+
783+ # Optional
784+ compartment_id = var. compartment_id
785+ display_name = var. external_asm_connector_display_name
786+ depends_on = [oci_database_management_external_db_system_connector . test_external_asm_connector ]
787+ }
788+
789+ # # Disable database management for ExternalDbSystem
790+ # resource "oci_database_management_external_db_system_database_managements_management" "test_external_db_system_database_managements_management" {
791+ # #Required
792+ # external_db_system_id = oci_database_management_external_db_system.test_external_db_system.id
793+ # enable_database_management = false
794+ # }
0 commit comments