diff --git a/Multicloud/Azure/Exa_mgmt_e2e.tf b/Multicloud/Azure/Exa_mgmt_e2e.tf new file mode 100644 index 00000000..82706633 --- /dev/null +++ b/Multicloud/Azure/Exa_mgmt_e2e.tf @@ -0,0 +1,197 @@ +terraform { + required_providers { + azapi = { + source = "Azure/azapi" + } + oci = { + source = "oracle/oci" + } + } +} + +provider "azapi" { + skip_provider_registration = false +} + +provider "oci" { + user_ocid = + fingerprint = + tenancy_ocid = + region = "us-ashburn-1" + private_key_path = +} + +locals { + resource_group_name = "TestResourceGroup" + user = "Username" + location = "eastus" +} + +resource "azapi_resource" "resource_group" { + type = "Microsoft.Resources/resourceGroups@2023-07-01" + name = local.resource_group_name + location = local.location +} + +resource "azapi_resource" "virtual_network" { + type = "Microsoft.Network/virtualNetworks@2023-04-01" + name = "${local.resource_group_name}_vnet" + location = local.location + parent_id = azapi_resource.resource_group.id + body = jsonencode({ + properties = { + addressSpace = { + addressPrefixes = [ + "10.0.0.0/16" + ] + } + subnets = [ + { + name = "delegated" + properties = { + addressPrefix = "10.0.1.0/24" + delegations = [ + { + name = "Oracle.Database.networkAttachments" + properties = { + serviceName = "Oracle.Database/networkAttachments" + } + } + ] + } + } + ] + } + }) +} + +data "azapi_resource_list" "listVirtualNetwork" { + type = "Microsoft.Network/virtualNetworks/subnets@2023-09-01" + parent_id = azapi_resource.virtual_network.id + depends_on = [azapi_resource.virtual_network] + response_export_values = ["*"] +} + +resource "tls_private_key" "generated_ssh_key" { + algorithm = "RSA" + rsa_bits = 4096 +} + +resource "azapi_resource" "ssh_public_key" { + type = "Microsoft.Compute/sshPublicKeys@2023-09-01" + name = "${local.resource_group_name}_key" + location = local.location + parent_id = azapi_resource.resource_group.id + body = jsonencode({ + properties = { + publicKey = "${tls_private_key.generated_ssh_key.public_key_openssh}" + } + }) +} + +// OperationId: CloudExadataInfrastructures_CreateOrUpdate, CloudExadataInfrastructures_Get, CloudExadataInfrastructures_Delete +// PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudExadataInfrastructures/{cloudexadatainfrastructurename} +resource "azapi_resource" "cloudExadataInfrastructure" { + type = "Oracle.Database/cloudExadataInfrastructures@2023-09-01-preview" + parent_id = azapi_resource.resource_group.id + name = "OFake_terraform_deploy_infra_${local.resource_group_name}" + timeouts { + create = "1h30m" + delete = "20m" + } + body = jsonencode({ + "location" : "${local.location}", + "zones" : [ + "2" + ], + "tags" : { + "createdby" : "${local.user}" + }, + "properties" : { + "computeCount" : 2, + "displayName" : "OFake_terraform_deploy_infra_${local.resource_group_name}", + "maintenanceWindow" : { + "leadTimeInWeeks" : 0, + "preference" : "NoPreference", + "patchingMode" : "Rolling" + }, + "shape" : "Exadata.X9M", + "storageCount" : 3 + } + + }) + schema_validation_enabled = false +} + +// OperationId: DbServers_ListByCloudExadataInfrastructure +// GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudExadataInfrastructures/{cloudexadatainfrastructurename}/dbServers +data "azapi_resource_list" "listDbServersByCloudExadataInfrastructure" { + type = "Oracle.Database/cloudExadataInfrastructures/dbServers@2023-09-01-preview" + parent_id = azapi_resource.cloudExadataInfrastructure.id + depends_on = [azapi_resource.cloudExadataInfrastructure] + response_export_values = ["*"] +} + +// OperationId: CloudVmClusters_CreateOrUpdate, CloudVmClusters_Get, CloudVmClusters_Delete +// PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudVmClusters/{cloudvmclustername} +resource "azapi_resource" "cloudVmCluster" { + type = "Oracle.Database/cloudVmClusters@2023-09-01-preview" + parent_id = azapi_resource.resource_group.id + name = "OFake_terraform_deploy_cluster_${local.resource_group_name}" + schema_validation_enabled = false + depends_on = [azapi_resource.cloudExadataInfrastructure] + timeouts { + create = "1h30m" + delete = "20m" + } + body = jsonencode({ + "location" : "${local.location}", + "tags" : { + "createdby" : "${local.user}" + }, + "properties" : { + "subnetId" : "${jsondecode(data.azapi_resource_list.listVirtualNetwork.output).value[0].id}" + "cloudExadataInfrastructureId" : "${azapi_resource.cloudExadataInfrastructure.id}" + "cpuCoreCount" : 4 + "dataCollectionOptions" : { + "isDiagnosticsEventsEnabled" : true, + "isHealthMonitoringEnabled" : true, + "isIncidentLogsEnabled" : true + }, + "dataStoragePercentage" : 80, + "dataStorageSizeInTbs" : 2, + "dbNodeStorageSizeInGbs" : 120, + "dbServers" : [ + "${jsondecode(data.azapi_resource_list.listDbServersByCloudExadataInfrastructure.output).value[0].properties.ocid}", + "${jsondecode(data.azapi_resource_list.listDbServersByCloudExadataInfrastructure.output).value[1].properties.ocid}" + ] + "displayName" : "OFake_terraform_deploy_cluster_${local.resource_group_name}", + "giVersion" : "19.0.0.0", + "hostname" : "${local.user}", + "isLocalBackupEnabled" : false, + "isSparseDiskgroupEnabled" : false, + "licenseModel" : "LicenseIncluded", + "memorySizeInGbs" : 60, + "sshPublicKeys" : ["${tls_private_key.generated_ssh_key.public_key_openssh}"], + "timeZone" : "UTC", + "vnetId" : "${azapi_resource.virtual_network.id}", + "provisioningState" : "Succeeded" + } + }) + response_export_values = ["properties.ocid"] +} + +resource "oci_database_db_home" "exa_db_home" { + source = "VM_CLUSTER_NEW" + vm_cluster_id = jsondecode(azapi_resource.cloudVmCluster.output).properties.ocid + db_version = "19.20.0.0" + display_name = "TFDBHOME" + + database { + db_name = "TFCDB" + pdb_name = "TFPDB" + admin_password = "TestPass#2024#" + db_workload = "OLTP" + } + depends_on = [azapi_resource.cloudVmCluster] +} diff --git a/Multicloud/Azure/adbs_deploy.tf b/Multicloud/Azure/adbs_deploy.tf new file mode 100644 index 00000000..fdedb933 --- /dev/null +++ b/Multicloud/Azure/adbs_deploy.tf @@ -0,0 +1,32 @@ +resource "azapi_resource" "autonomousDbDeploy" { + type = "Oracle.Database/autonomousDatabases@2023-09-01-preview" + parent_id = azapi_resource.resource_group.id + name = "Adbs${local.resource_group_name}" + schema_validation_enabled = false + timeouts { + create = "1h30m" + update = "2h" + delete = "20m" + } + body = jsonencode({ + "location" : local.location, + "tags" : { + "createdby" : local.user + }, + "properties" : { + "subnetId" : data.azurerm_subnet.listSubnet.id + "dataBaseType": "Regular", + "displayName": "example_autonomous_databasedb1", + "computeModel": "ECPU", + "computeCount": 2, + "dataStorageSizeInGbs": 32, + "dbWorkload": "OLTP", + "adminPassword": "Password", + "dbVersion": "19c", + "characterSet": "AL32UTF8", + "ncharacterSet": "AL16UTF16", + "vnetId": azurerm_virtual_network.virtual_network.id, + } + }) + response_export_values = ["properties.ocid"] +} diff --git a/Multicloud/Azure/adbs_e2e.tf b/Multicloud/Azure/adbs_e2e.tf new file mode 100644 index 00000000..cb92230d --- /dev/null +++ b/Multicloud/Azure/adbs_e2e.tf @@ -0,0 +1,111 @@ +terraform { + required_providers { + azapi = { + source = "Azure/azapi" + } + azurerm = { + source = "hashicorp/azurerm" + } + } +} + +provider "azapi" { + skip_provider_registration = false +} + +provider "azurerm" { + skip_provider_registration = true + features {} +} + +locals { + resource_group_name = "adbsdemotest" + user = "myuser" + location = "eastus" +} + +resource "azapi_resource" "resource_group" { + type = "Microsoft.Resources/resourceGroups@2023-07-01" + name = local.resource_group_name + location = local.location +} + +resource "azurerm_virtual_network" "virtual_network" { + name = "${local.resource_group_name}_vnet" + address_space = ["10.0.0.0/16"] + location = local.location + resource_group_name = local.resource_group_name +} + +resource "azurerm_subnet" "virtual_network_subnet" { + name = "${local.resource_group_name}_subnet" + resource_group_name = local.resource_group_name + virtual_network_name = azurerm_virtual_network.virtual_network.name + address_prefixes = ["10.0.1.0/24"] + + delegation { + name = "delegation" + + service_delegation { + name = "Oracle.Database/networkAttachments" + } + } +} + +data "azurerm_subnet" "listSubnet" { + name = "${local.resource_group_name}_subnet" + virtual_network_name = "${local.resource_group_name}_vnet" + resource_group_name = local.resource_group_name + depends_on = [azurerm_subnet.virtual_network_subnet] +} + +resource "tls_private_key" "generated_ssh_key" { + algorithm = "RSA" + rsa_bits = 4096 +} + +resource "azapi_resource" "ssh_public_key" { + type = "Microsoft.Compute/sshPublicKeys@2023-09-01" + name = "${local.resource_group_name}_key" + location = local.location + parent_id = azapi_resource.resource_group.id + body = jsonencode({ + properties = { + publicKey = tls_private_key.generated_ssh_key.public_key_openssh + } + }) +} + +resource "azapi_resource" "autonomousDbDeploy" { + type = "Oracle.Database/autonomousDatabases@2023-09-01-preview" + parent_id = azapi_resource.resource_group.id + name = "Adbs${local.resource_group_name}" + schema_validation_enabled = false + depends_on = [azapi_resource.ssh_public_key] + timeouts { + create = "1h30m" + update = "2h" + delete = "20m" + } + body = jsonencode({ + "location" : local.location, + "tags" : { + "createdby" : local.user + }, + "properties" : { + "subnetId" : data.azurerm_subnet.listSubnet.id + "dataBaseType": "Regular", + "displayName": "example_autonomous_databasedb1", + "computeModel": "ECPU", + "computeCount": 2, + "dataStorageSizeInGbs": 32, + "dbWorkload": "OLTP", + "adminPassword": "TestPass#2024#", + "dbVersion": "19c", + "characterSet": "AL32UTF8", + "ncharacterSet": "AL16UTF16", + "vnetId": azurerm_virtual_network.virtual_network.id, + } + }) + response_export_values = ["properties.ocid"] +} diff --git a/Multicloud/Azure/adbs_list.tf b/Multicloud/Azure/adbs_list.tf new file mode 100644 index 00000000..ecc25e1b --- /dev/null +++ b/Multicloud/Azure/adbs_list.tf @@ -0,0 +1,15 @@ +// OperationId: AutonomousDatabases_ListBySubscription +// GET /subscriptions/{subscriptionId}/providers/Oracle.Database/autonomousDatabases +data "azapi_resource_list" "listAutonomousDatabasesBySubscription" { + type = "Oracle.Database/autonomousDatabases@2023-09-01-preview" + parent_id = data.azapi_resource.subscription.id + depends_on = [azapi_resource.autonomousDatabase] +} + +// OperationId: AutonomousDatabases_ListByResourceGroup +// GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/autonomousDatabases +data "azapi_resource_list" "listAutonomousDatabasesByResourceGroup" { + type = "Oracle.Database/autonomousDatabases@2023-09-01-preview" + parent_id = azapi_resource.resourceGroup.id + depends_on = [azapi_resource.autonomousDatabase] +} diff --git a/Multicloud/Azure/dbshapes_list.tf b/Multicloud/Azure/dbshapes_list.tf new file mode 100644 index 00000000..1448cafe --- /dev/null +++ b/Multicloud/Azure/dbshapes_list.tf @@ -0,0 +1,24 @@ +// List an Oracle Exadata Database Shape + +data "azapi_resource_id" "location" { + type = "Oracle.Database/locations@2023-12-12" + parent_id = data.azapi_resource.subscription.id + name = "eastus" +} + +// OperationId: DbSystemShapes_Get +// GET /subscriptions/{subscriptionId}/providers/Oracle.Database/locations/{location}/dbSystemShapes/{dbsystemshapename} +data "azapi_resource" "dbSystemShape" { + type = "Oracle.Database/locations/dbSystemShapes@2023-09-01-preview" + parent_id = data.azapi_resource_id.location.id + name = var.resource_name +} + +// List Oracle Exadata Database Shapes by Location + +// OperationId: DbSystemShapes_ListByLocation +// GET /subscriptions/{subscriptionId}/providers/Oracle.Database/locations/{location}/dbSystemShapes +data "azapi_resource_list" "listDbSystemShapesByLocation" { + type = "Oracle.Database/locations/dbSystemShapes@2023-09-01-preview" + parent_id = data.azapi_resource_id.location.id +} diff --git a/Multicloud/Azure/exa_DbNode_start_stop.tf b/Multicloud/Azure/exa_DbNode_start_stop.tf new file mode 100644 index 00000000..76a4fb02 --- /dev/null +++ b/Multicloud/Azure/exa_DbNode_start_stop.tf @@ -0,0 +1,19 @@ +resource "azapi_resource_action" "stopVMCluster" { + type = "Oracle.Database/cloudVmClusters/dbNodes@2023-09-01-preview" + resource_id = "RESOURCE_ID_HERE" + action = "action" + body = jsonencode({ + "action" : "Stop" + }) + response_export_values = ["*"] +} + +resource "azapi_resource_action" "stopVMCluster" { + type = "Oracle.Database/cloudVmClusters/dbNodes@2023-09-01-preview" + resource_id = "RESOURCE_ID_HERE" + action = "action" + body = jsonencode({ + "action" : "Start" + }) + response_export_values = ["*"] +} diff --git a/Multicloud/Azure/exa_vmcluster_create.tf b/Multicloud/Azure/exa_vmcluster_create.tf new file mode 100644 index 00000000..f1d599c5 --- /dev/null +++ b/Multicloud/Azure/exa_vmcluster_create.tf @@ -0,0 +1,95 @@ +resource "azapi_resource" "resource_group" { + type = "Microsoft.Resources/resourceGroups@2023-07-01" + name = "ExampleRG" location = "eastus" +} + +// OperationId: CloudExadataInfrastructures_CreateOrUpdate, CloudExadataInfrastructures_Get, CloudExadataInfrastructures_Delete +// PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudExadataInfrastructures/{cloudexadatainfrastructurename} +resource "azapi_resource" "cloudExadataInfrastructure" { + type = "Oracle.Database/cloudExadataInfrastructures@2023-09-01-preview" + parent_id = azapi_resource.resource_group.id + name = "ExampleName" + body = jsonencode({ + "location" : "eastus", + "zones" : [ + "2" + ], + "tags" : { + "createdby" : "ExampleName" + }, + "properties" : { + "computeCount" : 2, + "displayName" : "ExampleName", + "maintenanceWindow" : { + "leadTimeInWeeks" : 0, + "preference" : "NoPreference", + "patchingMode" : "Rolling" + }, + "shape" : "Exadata.X9M", + "storageCount" : 3 + } + }) + schema_validation_enabled = false +} + +//-------------VMCluster resources ------------ +// OperationId: CloudVmClusters_CreateOrUpdate, CloudVmClusters_Get, CloudVmClusters_Delete +// PUT GET DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudVmClusters/{cloudvmclustername} +resource "azapi_resource" "cloudVmCluster" { + type = "Oracle.Database/cloudVmClusters@2023-09-01-preview" + parent_id = azapi_resource.resourceGroup.id + name = local.exa_cluster_name + schema_validation_enabled = false + depends_on = [azapi_resource.cloudExadataInfrastructure] + body = jsonencode({ + "properties": { + "dataStorageSizeInTbs": 1000, + "dbNodeStorageSizeInGbs": 1000, + "memorySizeInGbs": 1000, + "timeZone": "UTC", + "hostname": "hostname1", + "domain": "domain1", + "cpuCoreCount": 2, + "ocpuCount": 3, + "clusterName": "cluster1", + "dataStoragePercentage": 100, + "isLocalBackupEnabled": false, + "cloudExadataInfrastructureId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg000/providers/Oracle.Database/cloudExadataInfrastructures/infra1", + "isSparseDiskgroupEnabled": false, + "sshPublicKeys": [ + "ssh-key 1" + ], + "nsgCidrs": [ + { + "source": "10.0.0.0/16", + "destinationPortRange": { + "min": 1520, + "max": 1522 + } + }, + { + "source": "10.10.0.0/24" + } + ], + "licenseModel": "LicenseIncluded", + "scanListenerPortTcp": 1050, + "scanListenerPortTcpSsl": 1025, + "vnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg000/providers/Microsoft.Network/virtualNetworks/vnet1", + "giVersion": "19.0.0.0", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg000/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + "backupSubnetCidr": "172.17.5.0/24", + "dataCollectionOptions": { + "isDiagnosticsEventsEnabled": false, + "isHealthMonitoringEnabled": false, + "isIncidentLogsEnabled": false + }, + "displayName": "cluster 1", + "dbServers": [ + "ocid1..aaaa" + ] + }, + "location": "eastus" + } +}) + response_export_values = ["properties.ocid"] +} diff --git a/Multicloud/Azure/exa_vmcluster_list.tf b/Multicloud/Azure/exa_vmcluster_list.tf new file mode 100644 index 00000000..9709a42c --- /dev/null +++ b/Multicloud/Azure/exa_vmcluster_list.tf @@ -0,0 +1,34 @@ +data "azapi_resource" "subscription" { + type = "Microsoft.Resources/subscriptions@2020-06-01" + response_export_values = ["*"] +} + +// OperationId: CloudExadataInfrastructures_ListBySubscription +// GET /subscriptions/{subscriptionId}/providers/Oracle.Database/cloudExadataInfrastructures +data "azapi_resource_list" "listCloudExadataInfrastructuresBySubscription" { + type = "Oracle.Database/cloudVmClusters@2023-09-01-preview" + parent_id = data.azapi_resource.subscription.id +} + +// List Oracle Exadata VM Clusters by Resource Group + +data "azurerm_resource_group" "example" { + name = "existing" +} + +// OperationId: CloudExadataInfrastructures_ListByResourceGroup +// GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudExadataInfrastructures +data "azapi_resource_list" "listCloudExadataInfrastructuresByResourceGroup" { + type = "Oracle.Database/cloudVmClusters@2023-09-01-preview" + parent_id = azurerm_resource_group.example.id +} + +// List Database Nodes on an Oracle Exadata VM Cluster + +// OperationId: DbNodes_Get +// GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudVmClusters/{cloudvmclustername}/dbNodes/{dbnodeocid} +data "azapi_resource" "dbNode" { + type = "Oracle.Database/cloudVmClusters/dbNodes@2023-09-01-preview" + parent_id = azapi_resource.cloudVmCluster.id. // VM Cluster Id + name = var.resource_name +} diff --git a/Multicloud/Azure/exainfra_create.tf b/Multicloud/Azure/exainfra_create.tf new file mode 100644 index 00000000..a9bf9aeb --- /dev/null +++ b/Multicloud/Azure/exainfra_create.tf @@ -0,0 +1,34 @@ +resource "azapi_resource" "resource_group" { + type = "Microsoft.Resources/resourceGroups@2023-07-01" + name = "ExampleRG" + location = "eastus" +} + +// OperationId: CloudExadataInfrastructures_CreateOrUpdate, CloudExadataInfrastructures_Get, CloudExadataInfrastructures_Delete +// PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudExadataInfrastructures/{cloudexadatainfrastructurename} +resource "azapi_resource" "cloudExadataInfrastructure" { + type = "Oracle.Database/cloudExadataInfrastructures@2023-09-01-preview" + parent_id = azapi_resource.resource_group.id + name = "ExampleName" + body = jsonencode({ + "location" : "eastus", + "zones" : [ + "2" + ], + "tags" : { + "createdby" : "ExampleName" + }, + "properties" : { + "computeCount" : 2, + "displayName" : "ExampleName", + "maintenanceWindow" : { + "leadTimeInWeeks" : 0, + "preference" : "NoPreference", + "patchingMode" : "Rolling" + }, + "shape" : "Exadata.X9M", + "storageCount" : 3 + } + }) + schema_validation_enabled = false +} diff --git a/Multicloud/Azure/exainfra_list.tf b/Multicloud/Azure/exainfra_list.tf new file mode 100644 index 00000000..e2b98dd5 --- /dev/null +++ b/Multicloud/Azure/exainfra_list.tf @@ -0,0 +1,22 @@ +data "azapi_resource" "subscription" { + type = "Microsoft.Resources/subscriptions@2020-06-01" + response_export_values = ["*"] +} + +// OperationId: CloudExadataInfrastructures_ListBySubscription +// GET /subscriptions/{subscriptionId}/providers/Oracle.Database/cloudExadataInfrastructures +data "azapi_resource_list" "listCloudExadataInfrastructuresBySubscription" { + type = "Oracle.Database/cloudExadataInfrastructures@2023-09-01-preview" + parent_id = data.azapi_resource.subscription.id +} + +data "azurerm_resource_group" "example" { + name = "existing" +} + +// OperationId: CloudExadataInfrastructures_ListByResourceGroup +// GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudExadataInfrastructures +data "azapi_resource_list" "listCloudExadataInfrastructuresByResourceGroup" { + type = "Oracle.Database/cloudExadataInfrastructures@2023-09-01-preview" + parent_id = azurerm_resource_group.example.id +} diff --git a/Multicloud/Azure/exainfra_patch.tf b/Multicloud/Azure/exainfra_patch.tf new file mode 100644 index 00000000..ace9ae5d --- /dev/null +++ b/Multicloud/Azure/exainfra_patch.tf @@ -0,0 +1,18 @@ +data "azapi_resource" "subscription" { + type = "Microsoft.Resources/subscriptions@2020-06-01" + response_export_values = ["*"] +} + +// OperationId: CloudExadataInfrastructures_Update +// PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudExadataInfrastructures/{cloudexadatainfrastructurename} +resource "azapi_resource_action" "patch_cloudExadataInfrastructure" { + type = "Oracle.Database/cloudExadataInfrastructures@2023-09-01-preview" + resource_id = azapi_resource.cloudExadataInfrastructure.id + action = "" + method = "PATCH" + body = jsonencode({ + "tags" : { + "updatedby" : "ExampleName" + } + }) +} diff --git a/Multicloud/Azure/list_dbservers.tf b/Multicloud/Azure/list_dbservers.tf new file mode 100644 index 00000000..c10ca0ed --- /dev/null +++ b/Multicloud/Azure/list_dbservers.tf @@ -0,0 +1,7 @@ +// OperationId: DbServers_Get +// GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudExadataInfrastructures/{cloudexadatainfrastructurename}/dbServers/{dbserverocid} +data "azapi_resource" "dbServer" { + type = "Oracle.Database/cloudExadataInfrastructures/dbServers@2023-09-01-preview" + parent_id = azapi_resource.cloudExadataInfrastructure.id + name = var.resource_name +} diff --git a/Multicloud/Azure/vmcluster_add_vnet.tf b/Multicloud/Azure/vmcluster_add_vnet.tf new file mode 100644 index 00000000..2705f7e8 --- /dev/null +++ b/Multicloud/Azure/vmcluster_add_vnet.tf @@ -0,0 +1,21 @@ +// OperationId: VirtualNetworkAddresses_CreateOrUpdate, VirtualNetworkAddresses_Get, VirtualNetworkAddresses_Delete +// PUT GET DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudVmClusters/{cloudvmclustername}/virtualNetworkAddresses/{virtualnetworkaddressname} +resource "azapi_resource" "virtualNetworkAddress" { + type = "Oracle.Database/cloudVmClusters/virtualNetworkAddresses@2023-09-01-preview" + parent_id = azapi_resource.cloudVmCluster.id + name = var.resource_name + body = jsonencode({ + "properties": { + "ipAddress": "192.168.0.1", + "vmOcid": "ocid1..aaaa" + } + }) + schema_validation_enabled = false +} + +// OperationId: VirtualNetworkAddresses_ListByCloudVmCluster +// GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudVmClusters/{cloudvmclustername}/virtualNetworkAddresses +data "azapi_resource_list" "listVirtualNetworkAddressesByCloudVmCluster" { + type = "Oracle.Database/cloudVmClusters/virtualNetworkAddresses@2023-09-01-preview" + parent_id = azapi_resource.cloudVmCluster.id +}