CloudVmClusterArgs

data class CloudVmClusterArgs(val backupSubnetCidr: Output<String>? = null, val cloudExadataInfrastructureId: Output<String>? = null, val clusterName: Output<String>? = null, val cpuCoreCount: Output<Int>? = null, val dataCollectionOptions: Output<CloudVmClusterDataCollectionOptionsArgs>? = null, val dataStoragePercentage: Output<Int>? = null, val dataStorageSizeInTbs: Output<Double>? = null, val dbNodeStorageSizeInGbs: Output<Int>? = null, val dbServers: Output<List<String>>? = null, val displayName: Output<String>? = null, val domain: Output<String>? = null, val giVersion: Output<String>? = null, val hostname: Output<String>? = null, val licenseModel: Output<String>? = null, val localBackupEnabled: Output<Boolean>? = null, val location: Output<String>? = null, val memorySizeInGbs: Output<Int>? = null, val name: Output<String>? = null, val resourceGroupName: Output<String>? = null, val scanListenerPortTcp: Output<Int>? = null, val scanListenerPortTcpSsl: Output<Int>? = null, val sparseDiskgroupEnabled: Output<Boolean>? = null, val sshPublicKeys: Output<List<String>>? = null, val subnetId: Output<String>? = null, val systemVersion: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val timeZone: Output<String>? = null, val virtualNetworkId: Output<String>? = null, val zoneId: Output<String>? = null) : ConvertibleToJava<CloudVmClusterArgs>

Manages a Cloud VM Cluster.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
import * as std from "@pulumi/std";
const exampleResourceGroup = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleExadataInfrastructure = new azure.oracle.ExadataInfrastructure("example", {
name: "example-exadata-infrastructure",
displayName: "example-exadata-infrastructure",
location: exampleResourceGroup.location,
resourceGroupName: exampleResourceGroup.name,
shape: "Exadata.X9M",
storageCount: 3,
computeCount: 2,
zones: ["3"],
});
const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
name: "example-virtual-network",
addressSpaces: ["10&#46;0&#46;0&#46;0/16"],
location: exampleResourceGroup.location,
resourceGroupName: exampleResourceGroup.name,
});
const exampleSubnet = new azure.network.Subnet("example", {
name: "example-subnet",
resourceGroupName: exampleResourceGroup.name,
virtualNetworkName: exampleVirtualNetwork.name,
addressPrefixes: ["10&#46;0&#46;1&#46;0/24"],
delegations: [{
name: "delegation",
serviceDelegation: {
actions: [
"Microsoft.Network/networkinterfaces/*",
"Microsoft.Network/virtualNetworks/subnets/join/action",
],
name: "Oracle.Database/networkAttachments",
},
}],
});
const example = azure.oracle.getDbServersOutput({
resourceGroupName: exampleResourceGroup.name,
cloudExadataInfrastructureName: exampleExadataInfrastructure.name,
});
const exampleCloudVmCluster = new azure.oracle.CloudVmCluster("example", {
name: "example-cloud-vm-cluster",
resourceGroupName: exampleResourceGroup.name,
location: exampleResourceGroup.location,
giVersion: "23.0.0.0",
virtualNetworkId: exampleVirtualNetwork.id,
licenseModel: "BringYourOwnLicense",
dbServers: example.apply(example => .map(obj => (obj.ocid))),
sshPublicKeys: [std.file({
input: "~/.ssh/id_rsa.pub",
}).then(invoke => invoke.result)],
displayName: "example-cloud-vm-cluster",
cloudExadataInfrastructureId: exampleExadataInfrastructure.id,
cpuCoreCount: 2,
hostname: "hostname",
subnetId: exampleSubnet.id,
systemVersion: "23.1.19.0.0.241015",
});
import pulumi
import pulumi_azure as azure
import pulumi_std as std
example_resource_group = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_exadata_infrastructure = azure.oracle.ExadataInfrastructure("example",
name="example-exadata-infrastructure",
display_name="example-exadata-infrastructure",
location=example_resource_group.location,
resource_group_name=example_resource_group.name,
shape="Exadata.X9M",
storage_count=3,
compute_count=2,
zones=["3"])
example_virtual_network = azure.network.VirtualNetwork("example",
name="example-virtual-network",
address_spaces=["10&#46;0&#46;0&#46;0/16"],
location=example_resource_group.location,
resource_group_name=example_resource_group.name)
example_subnet = azure.network.Subnet("example",
name="example-subnet",
resource_group_name=example_resource_group.name,
virtual_network_name=example_virtual_network.name,
address_prefixes=["10&#46;0&#46;1&#46;0/24"],
delegations=[{
"name": "delegation",
"service_delegation": {
"actions": [
"Microsoft.Network/networkinterfaces/*",
"Microsoft.Network/virtualNetworks/subnets/join/action",
],
"name": "Oracle.Database/networkAttachments",
},
}])
example = azure.oracle.get_db_servers_output(resource_group_name=example_resource_group.name,
cloud_exadata_infrastructure_name=example_exadata_infrastructure.name)
example_cloud_vm_cluster = azure.oracle.CloudVmCluster("example",
name="example-cloud-vm-cluster",
resource_group_name=example_resource_group.name,
location=example_resource_group.location,
gi_version="23.0.0.0",
virtual_network_id=example_virtual_network.id,
license_model="BringYourOwnLicense",
db_servers=example.apply(lambda example: [obj&#46;ocid for obj in example&#46;db_servers]),
ssh_public_keys=[std&#46;file(input="~/&#46;ssh/id_rsa&#46;pub")&#46;result],
display_name="example-cloud-vm-cluster",
cloud_exadata_infrastructure_id=example_exadata_infrastructure.id,
cpu_core_count=2,
hostname="hostname",
subnet_id=example_subnet.id,
system_version="23.1.19.0.0.241015")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-resources",
Location = "West Europe",
});
var exampleExadataInfrastructure = new Azure.Oracle.ExadataInfrastructure("example", new()
{
Name = "example-exadata-infrastructure",
DisplayName = "example-exadata-infrastructure",
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
Shape = "Exadata.X9M",
StorageCount = 3,
ComputeCount = 2,
Zones = new[]
{
"3",
},
});
var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
{
Name = "example-virtual-network",
AddressSpaces = new[]
{
"10.0.0.0/16",
},
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
});
var exampleSubnet = new Azure.Network.Subnet("example", new()
{
Name = "example-subnet",
ResourceGroupName = exampleResourceGroup.Name,
VirtualNetworkName = exampleVirtualNetwork.Name,
AddressPrefixes = new[]
{
"10.0.1.0/24",
},
Delegations = new[]
{
new Azure.Network.Inputs.SubnetDelegationArgs
{
Name = "delegation",
ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs
{
Actions = new[]
{
"Microsoft.Network/networkinterfaces/*",
"Microsoft.Network/virtualNetworks/subnets/join/action",
},
Name = "Oracle.Database/networkAttachments",
},
},
},
});
var example = Azure.Oracle.GetDbServers.Invoke(new()
{
ResourceGroupName = exampleResourceGroup.Name,
CloudExadataInfrastructureName = exampleExadataInfrastructure.Name,
});
var exampleCloudVmCluster = new Azure.Oracle.CloudVmCluster("example", new()
{
Name = "example-cloud-vm-cluster",
ResourceGroupName = exampleResourceGroup.Name,
Location = exampleResourceGroup.Location,
GiVersion = "23.0.0.0",
VirtualNetworkId = exampleVirtualNetwork.Id,
LicenseModel = "BringYourOwnLicense",
DbServers = .Select(obj =>
{
return obj.Ocid;
}).ToList(),
SshPublicKeys = new[]
{
Std.File.Invoke(new()
{
Input = "~/.ssh/id_rsa.pub",
}).Apply(invoke => invoke.Result),
},
DisplayName = "example-cloud-vm-cluster",
CloudExadataInfrastructureId = exampleExadataInfrastructure.Id,
CpuCoreCount = 2,
Hostname = "hostname",
SubnetId = exampleSubnet.Id,
SystemVersion = "23.1.19.0.0.241015",
});
});

API Providers

This resource uses the following Azure API Providers:

  • Oracle.Database: 2024-06-01

Import

Cloud VM Clusters can be imported using the resource id, e.g.

$ pulumi import azure:oracle/cloudVmCluster:CloudVmCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup/providers/Oracle.Database/cloudVmClusters/cloudVmClusters1

Constructors

Link copied to clipboard
constructor(backupSubnetCidr: Output<String>? = null, cloudExadataInfrastructureId: Output<String>? = null, clusterName: Output<String>? = null, cpuCoreCount: Output<Int>? = null, dataCollectionOptions: Output<CloudVmClusterDataCollectionOptionsArgs>? = null, dataStoragePercentage: Output<Int>? = null, dataStorageSizeInTbs: Output<Double>? = null, dbNodeStorageSizeInGbs: Output<Int>? = null, dbServers: Output<List<String>>? = null, displayName: Output<String>? = null, domain: Output<String>? = null, giVersion: Output<String>? = null, hostname: Output<String>? = null, licenseModel: Output<String>? = null, localBackupEnabled: Output<Boolean>? = null, location: Output<String>? = null, memorySizeInGbs: Output<Int>? = null, name: Output<String>? = null, resourceGroupName: Output<String>? = null, scanListenerPortTcp: Output<Int>? = null, scanListenerPortTcpSsl: Output<Int>? = null, sparseDiskgroupEnabled: Output<Boolean>? = null, sshPublicKeys: Output<List<String>>? = null, subnetId: Output<String>? = null, systemVersion: Output<String>? = null, tags: Output<Map<String, String>>? = null, timeZone: Output<String>? = null, virtualNetworkId: Output<String>? = null, zoneId: Output<String>? = null)

Properties

Link copied to clipboard
val backupSubnetCidr: Output<String>? = null

The backup subnet CIDR of the Virtual Network associated with the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard

The OCID of the Cloud Exadata infrastructure. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val clusterName: Output<String>? = null

The cluster name for Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val cpuCoreCount: Output<Int>? = null

The number of CPU cores enabled on the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard

A data_collection_options block as defined below. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val dataStoragePercentage: Output<Int>? = null

The percentage assigned to DATA storage (user data and database files). Changing this forces a new Cloud VM Cluster to be created. The remaining percentage is assigned to RECO storage (database redo logs, archive logs, and recovery manager backups). Accepted values are 35, 40, 60 and 80.

Link copied to clipboard
val dataStorageSizeInTbs: Output<Double>? = null

The data disk group size to be allocated in TBs. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val dbNodeStorageSizeInGbs: Output<Int>? = null

The local node storage to be allocated in GBs. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val dbServers: Output<List<String>>? = null

The list of DB servers. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val displayName: Output<String>? = null

The user-friendly name for the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created. The name does not need to be unique.

Link copied to clipboard
val domain: Output<String>? = null

The name of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val giVersion: Output<String>? = null

A valid Oracle Grid Infrastructure (GI) software version. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val hostname: Output<String>? = null

The hostname for the Cloud VM Cluster without suffix. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val licenseModel: Output<String>? = null

The Oracle license model that applies to the Cloud VM Cluster, either BringYourOwnLicense or LicenseIncluded. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val localBackupEnabled: Output<Boolean>? = null

If true, database backup on local Exadata storage is configured for the Cloud VM Cluster. If false, database backup on local Exadata storage is not available in the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val location: Output<String>? = null

The Azure Region where the Cloud VM Cluster should exist. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val memorySizeInGbs: Output<Int>? = null

The memory to be allocated in GBs. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val name: Output<String>? = null

The name which should be used for this Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val resourceGroupName: Output<String>? = null

The name of the Resource Group where the Cloud VM Cluster should exist. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val scanListenerPortTcp: Output<Int>? = null

The TCP Single Client Access Name (SCAN) port. The default port to 1521. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val scanListenerPortTcpSsl: Output<Int>? = null

The TCPS Single Client Access Name (SCAN) port. The default port to 2484. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val sparseDiskgroupEnabled: Output<Boolean>? = null

If true, the sparse disk group is configured for the Cloud VM Cluster. If false, the sparse disk group is not created. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val sshPublicKeys: Output<List<String>>? = null

The public key portion of one or more key pairs used for SSH access to the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val subnetId: Output<String>? = null

The ID of the subnet associated with the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val systemVersion: Output<String>? = null

Operating system version of the Exadata image. System version must be <= Db server major version (the first two parts of the DB server version eg 23.1.X.X.XXXX). Accepted Values for Grid Infrastructure (GI) version 19.0.0.0 are 22.1.30.0.0.241204, 22.1.32.0.0.250205, 22.1.31.0.0.250110, 23.1.20.0.0.241112, 23.1.21.0.0.241204, 23.1.22.0.0.250119, 23.1.23.0.0.250207. For Grid Infrastructure (GI) version 23.0.0.0 allowed system versions are 23.1.19.0.0.241015, 23.1.20.0.0.241112, 23.1.22.0.0.250119, 23.1.21.0.0.241204, 23.1.23.0.0.250207.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

A mapping of tags which should be assigned to the Cloud VM Cluster.

Link copied to clipboard
val timeZone: Output<String>? = null

The time zone of the Cloud VM Cluster. For details, see Exadata Infrastructure Time Zones. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val virtualNetworkId: Output<String>? = null

The ID of the Virtual Network associated with the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val zoneId: Output<String>? = null

The OCID of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name. Changing this forces a new Cloud VM Cluster to be created. //*/

Functions

Link copied to clipboard
open override fun toJava(): CloudVmClusterArgs