Private Cloud
A private cloud resource Uses Azure REST API version 2023-09-01. In version 2.x of the Azure Native provider, it used API version 2022-05-01. Other available API versions: 2022-05-01, 2023-03-01, 2024-09-01. These can be accessed by generating a local SDK package using the CLI command pulumi package add azure-native avs [ApiVersion]
. See the ../../../version-guide/#accessing-any-api-version-via-local-packages for details.
Example Usage
PrivateClouds_CreateOrUpdate
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var privateCloud = new AzureNative.AVS.PrivateCloud("privateCloud", new()
{
Identity = new AzureNative.AVS.Inputs.SystemAssignedServiceIdentityArgs
{
Type = AzureNative.AVS.SystemAssignedServiceIdentityType.SystemAssigned,
},
Location = "eastus2",
ManagementCluster = new AzureNative.AVS.Inputs.ManagementClusterArgs
{
ClusterSize = 4,
},
NetworkBlock = "192.168.48.0/22",
PrivateCloudName = "cloud1",
ResourceGroupName = "group1",
Sku = new AzureNative.AVS.Inputs.SkuArgs
{
Name = "AV36",
},
Tags = null,
});
});
package main
import (
avs "github.com/pulumi/pulumi-azure-native-sdk/avs/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := avs.NewPrivateCloud(ctx, "privateCloud", &avs.PrivateCloudArgs{
Identity: &avs.SystemAssignedServiceIdentityArgs{
Type: pulumi.String(avs.SystemAssignedServiceIdentityTypeSystemAssigned),
},
Location: pulumi.String("eastus2"),
ManagementCluster: &avs.ManagementClusterArgs{
ClusterSize: pulumi.Int(4),
},
NetworkBlock: pulumi.String("192.168.48.0/22"),
PrivateCloudName: pulumi.String("cloud1"),
ResourceGroupName: pulumi.String("group1"),
Sku: &avs.SkuArgs{
Name: pulumi.String("AV36"),
},
Tags: pulumi.StringMap{},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.avs.PrivateCloud;
import com.pulumi.azurenative.avs.PrivateCloudArgs;
import com.pulumi.azurenative.avs.inputs.SystemAssignedServiceIdentityArgs;
import com.pulumi.azurenative.avs.inputs.ManagementClusterArgs;
import com.pulumi.azurenative.avs.inputs.SkuArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var privateCloud = new PrivateCloud("privateCloud", PrivateCloudArgs.builder()
.identity(SystemAssignedServiceIdentityArgs.builder()
.type("SystemAssigned")
.build())
.location("eastus2")
.managementCluster(ManagementClusterArgs.builder()
.clusterSize(4)
.build())
.networkBlock("192.168.48.0/22")
.privateCloudName("cloud1")
.resourceGroupName("group1")
.sku(SkuArgs.builder()
.name("AV36")
.build())
.tags(Map.ofEntries(
))
.build());
}
}
PrivateClouds_CreateOrUpdate_Stretched
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var privateCloud = new AzureNative.AVS.PrivateCloud("privateCloud", new()
{
Availability = new AzureNative.AVS.Inputs.AvailabilityPropertiesArgs
{
SecondaryZone = 2,
Strategy = AzureNative.AVS.AvailabilityStrategy.DualZone,
Zone = 1,
},
Location = "eastus2",
ManagementCluster = new AzureNative.AVS.Inputs.ManagementClusterArgs
{
ClusterSize = 4,
},
NetworkBlock = "192.168.48.0/22",
PrivateCloudName = "cloud1",
ResourceGroupName = "group1",
Sku = new AzureNative.AVS.Inputs.SkuArgs
{
Name = "AV36",
},
Tags = null,
});
});
package main
import (
avs "github.com/pulumi/pulumi-azure-native-sdk/avs/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := avs.NewPrivateCloud(ctx, "privateCloud", &avs.PrivateCloudArgs{
Availability: &avs.AvailabilityPropertiesArgs{
SecondaryZone: pulumi.Int(2),
Strategy: pulumi.String(avs.AvailabilityStrategyDualZone),
Zone: pulumi.Int(1),
},
Location: pulumi.String("eastus2"),
ManagementCluster: &avs.ManagementClusterArgs{
ClusterSize: pulumi.Int(4),
},
NetworkBlock: pulumi.String("192.168.48.0/22"),
PrivateCloudName: pulumi.String("cloud1"),
ResourceGroupName: pulumi.String("group1"),
Sku: &avs.SkuArgs{
Name: pulumi.String("AV36"),
},
Tags: pulumi.StringMap{},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.avs.PrivateCloud;
import com.pulumi.azurenative.avs.PrivateCloudArgs;
import com.pulumi.azurenative.avs.inputs.AvailabilityPropertiesArgs;
import com.pulumi.azurenative.avs.inputs.ManagementClusterArgs;
import com.pulumi.azurenative.avs.inputs.SkuArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var privateCloud = new PrivateCloud("privateCloud", PrivateCloudArgs.builder()
.availability(AvailabilityPropertiesArgs.builder()
.secondaryZone(2)
.strategy("DualZone")
.zone(1)
.build())
.location("eastus2")
.managementCluster(ManagementClusterArgs.builder()
.clusterSize(4)
.build())
.networkBlock("192.168.48.0/22")
.privateCloudName("cloud1")
.resourceGroupName("group1")
.sku(SkuArgs.builder()
.name("AV36")
.build())
.tags(Map.ofEntries(
))
.build());
}
}
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:avs:PrivateCloud cloud1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}
Properties
Properties describing how the cloud is distributed across availability zones
The Azure API version of the resource.
An ExpressRoute Circuit
The type of DNS zone to use.
Customer managed key encryption, can be enabled or disabled
The endpoints
Array of additional networks noncontiguous with networkBlock. Networks must be unique and non-overlapping across VNet in your subscription, on-premise, and this privateCloud networkBlock attribute. Make sure the CIDR format conforms to (A.B.C.D/X).
Array of cloud link IDs from other clouds that connect to this one
The managed service identities assigned to this resource.
vCenter Single Sign On Identity Sources
The default cluster used for management
Network used to access vCenter Server and NSX-T Manager
The block of addresses should be unique across VNet in your subscription as well as on-premise. Make sure the CIDR format is conformed to (A.B.C.D/X) where A,B,C,D are between 0 and 255, and X is between 0 and 22
Flag to indicate whether the private cloud has the quota for provisioned NSX Public IP count raised from 64 to 1024
Thumbprint of the NSX-T Manager SSL certificate
Optionally, set the NSX-T Manager password when the private cloud is created
Used for virtual machine cold migration, cloning, and snapshot migration
The provisioning state
A secondary expressRoute circuit from a separate AZ. Only present in a stretched private cloud
The SKU (Stock Keeping Unit) assigned to this resource.
Azure Resource Manager metadata containing createdBy and modifiedBy information.
Thumbprint of the vCenter Server SSL certificate
Optionally, set the vCenter admin password when the private cloud is created
Azure resource ID of the virtual network
Used for live migration of virtual machines