NetworkFabric

class NetworkFabric : KotlinCustomResource

The Network Fabric resource definition. Uses Azure REST API version 2023-06-15. In version 2.x of the Azure Native provider, it used API version 2023-02-01-preview. Other available API versions: 2023-02-01-preview. These can be accessed by generating a local SDK package using the CLI command pulumi package add azure-native managednetworkfabric [ApiVersion]. See the ../../../version-guide/#accessing-any-api-version-via-local-packages for details.

Example Usage

NetworkFabrics_Create_MaximumSet_Gen

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var networkFabric = new AzureNative.ManagedNetworkFabric.NetworkFabric("networkFabric", new()
{
Annotation = "annotation",
FabricASN = 29249,
FabricVersion = "1.x.x",
Ipv4Prefix = "10.18.0.0/19",
Ipv6Prefix = "3FFE:FFFF:0:CD40::/59",
Location = "eastuseuap",
ManagementNetworkConfiguration = new AzureNative.ManagedNetworkFabric.Inputs.ManagementNetworkConfigurationPropertiesArgs
{
InfrastructureVpnConfiguration = new AzureNative.ManagedNetworkFabric.Inputs.VpnConfigurationPropertiesArgs
{
NetworkToNetworkInterconnectId = "/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-fabric/networkToNetworkInterconnects/example-nni",
OptionAProperties = new AzureNative.ManagedNetworkFabric.Inputs.VpnConfigurationPropertiesOptionAPropertiesArgs
{
BfdConfiguration = new AzureNative.ManagedNetworkFabric.Inputs.BfdConfigurationArgs
{
IntervalInMilliSeconds = 300,
Multiplier = 10,
},
Mtu = 1501,
PeerASN = 1235,
PrimaryIpv4Prefix = "10.0.0.12/30",
PrimaryIpv6Prefix = "4FFE:FFFF:0:CD30::a8/127",
SecondaryIpv4Prefix = "20.0.0.13/30",
SecondaryIpv6Prefix = "6FFE:FFFF:0:CD30::ac/127",
VlanId = 3001,
},
OptionBProperties = new AzureNative.ManagedNetworkFabric.Inputs.FabricOptionBPropertiesArgs
{
ExportRouteTargets = new[]
{
"65046:10050",
},
ImportRouteTargets = new[]
{
"65046:10050",
},
RouteTargets = new AzureNative.ManagedNetworkFabric.Inputs.RouteTargetInformationArgs
{
ExportIpv4RouteTargets = new[]
{
"65046:10039",
},
ExportIpv6RouteTargets = new[]
{
"65046:10039",
},
ImportIpv4RouteTargets = new[]
{
"65046:10039",
},
ImportIpv6RouteTargets = new[]
{
"65046:10039",
},
},
},
PeeringOption = AzureNative.ManagedNetworkFabric.PeeringOption.OptionA,
},
WorkloadVpnConfiguration = new AzureNative.ManagedNetworkFabric.Inputs.VpnConfigurationPropertiesArgs
{
NetworkToNetworkInterconnectId = "/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-fabric/networkToNetworkInterconnects/example-nni",
OptionAProperties = new AzureNative.ManagedNetworkFabric.Inputs.VpnConfigurationPropertiesOptionAPropertiesArgs
{
BfdConfiguration = new AzureNative.ManagedNetworkFabric.Inputs.BfdConfigurationArgs
{
IntervalInMilliSeconds = 300,
Multiplier = 5,
},
Mtu = 1500,
PeerASN = 61234,
PrimaryIpv4Prefix = "10.0.0.14/30",
PrimaryIpv6Prefix = "2FFE:FFFF:0:CD30::a7/126",
SecondaryIpv4Prefix = "10.0.0.15/30",
SecondaryIpv6Prefix = "2FFE:FFFF:0:CD30::ac/126",
VlanId = 3000,
},
OptionBProperties = new AzureNative.ManagedNetworkFabric.Inputs.FabricOptionBPropertiesArgs
{
ExportRouteTargets = new[]
{
"65046:10050",
},
ImportRouteTargets = new[]
{
"65046:10050",
},
RouteTargets = new AzureNative.ManagedNetworkFabric.Inputs.RouteTargetInformationArgs
{
ExportIpv4RouteTargets = new[]
{
"65046:10039",
},
ExportIpv6RouteTargets = new[]
{
"65046:10039",
},
ImportIpv4RouteTargets = new[]
{
"65046:10039",
},
ImportIpv6RouteTargets = new[]
{
"65046:10039",
},
},
},
PeeringOption = AzureNative.ManagedNetworkFabric.PeeringOption.OptionA,
},
},
NetworkFabricControllerId = "/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/example-fabricController",
NetworkFabricName = "example-fabric",
NetworkFabricSku = "M4-A400-A100-C16-aa",
RackCount = 4,
ResourceGroupName = "example-rg",
ServerCountPerRack = 8,
Tags =
{
{ "keyID", "keyValue" },
},
TerminalServerConfiguration = new AzureNative.ManagedNetworkFabric.Inputs.TerminalServerConfigurationArgs
{
Password = "xxxx",
PrimaryIpv4Prefix = "10.0.0.12/30",
PrimaryIpv6Prefix = "4FFE:FFFF:0:CD30::a8/127",
SecondaryIpv4Prefix = "20.0.0.13/30",
SecondaryIpv6Prefix = "6FFE:FFFF:0:CD30::ac/127",
SerialNumber = "123456",
Username = "username",
},
});
});
package main
import (
managednetworkfabric "github.com/pulumi/pulumi-azure-native-sdk/managednetworkfabric/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := managednetworkfabric.NewNetworkFabric(ctx, "networkFabric", &managednetworkfabric.NetworkFabricArgs{
Annotation: pulumi.String("annotation"),
FabricASN: pulumi.Float64(29249),
FabricVersion: pulumi.String("1.x.x"),
Ipv4Prefix: pulumi.String("10.18.0.0/19"),
Ipv6Prefix: pulumi.String("3FFE:FFFF:0:CD40::/59"),
Location: pulumi.String("eastuseuap"),
ManagementNetworkConfiguration: &managednetworkfabric.ManagementNetworkConfigurationPropertiesArgs{
InfrastructureVpnConfiguration: &managednetworkfabric.VpnConfigurationPropertiesArgs{
NetworkToNetworkInterconnectId: pulumi.String("/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-fabric/networkToNetworkInterconnects/example-nni"),
OptionAProperties: &managednetworkfabric.VpnConfigurationPropertiesOptionAPropertiesArgs{
BfdConfiguration: &managednetworkfabric.BfdConfigurationArgs{
IntervalInMilliSeconds: pulumi.Int(300),
Multiplier: pulumi.Int(10),
},
Mtu: pulumi.Int(1501),
PeerASN: pulumi.Float64(1235),
PrimaryIpv4Prefix: pulumi.String("10.0.0.12/30"),
PrimaryIpv6Prefix: pulumi.String("4FFE:FFFF:0:CD30::a8/127"),
SecondaryIpv4Prefix: pulumi.String("20.0.0.13/30"),
SecondaryIpv6Prefix: pulumi.String("6FFE:FFFF:0:CD30::ac/127"),
VlanId: pulumi.Int(3001),
},
OptionBProperties: &managednetworkfabric.FabricOptionBPropertiesArgs{
ExportRouteTargets: pulumi.StringArray{
pulumi.String("65046:10050"),
},
ImportRouteTargets: pulumi.StringArray{
pulumi.String("65046:10050"),
},
RouteTargets: &managednetworkfabric.RouteTargetInformationArgs{
ExportIpv4RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
ExportIpv6RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
ImportIpv4RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
ImportIpv6RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
},
},
PeeringOption: pulumi.String(managednetworkfabric.PeeringOptionOptionA),
},
WorkloadVpnConfiguration: &managednetworkfabric.VpnConfigurationPropertiesArgs{
NetworkToNetworkInterconnectId: pulumi.String("/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-fabric/networkToNetworkInterconnects/example-nni"),
OptionAProperties: &managednetworkfabric.VpnConfigurationPropertiesOptionAPropertiesArgs{
BfdConfiguration: &managednetworkfabric.BfdConfigurationArgs{
IntervalInMilliSeconds: pulumi.Int(300),
Multiplier: pulumi.Int(5),
},
Mtu: pulumi.Int(1500),
PeerASN: pulumi.Float64(61234),
PrimaryIpv4Prefix: pulumi.String("10.0.0.14/30"),
PrimaryIpv6Prefix: pulumi.String("2FFE:FFFF:0:CD30::a7/126"),
SecondaryIpv4Prefix: pulumi.String("10.0.0.15/30"),
SecondaryIpv6Prefix: pulumi.String("2FFE:FFFF:0:CD30::ac/126"),
VlanId: pulumi.Int(3000),
},
OptionBProperties: &managednetworkfabric.FabricOptionBPropertiesArgs{
ExportRouteTargets: pulumi.StringArray{
pulumi.String("65046:10050"),
},
ImportRouteTargets: pulumi.StringArray{
pulumi.String("65046:10050"),
},
RouteTargets: &managednetworkfabric.RouteTargetInformationArgs{
ExportIpv4RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
ExportIpv6RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
ImportIpv4RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
ImportIpv6RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
},
},
PeeringOption: pulumi.String(managednetworkfabric.PeeringOptionOptionA),
},
},
NetworkFabricControllerId: pulumi.String("/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/example-fabricController"),
NetworkFabricName: pulumi.String("example-fabric"),
NetworkFabricSku: pulumi.String("M4-A400-A100-C16-aa"),
RackCount: pulumi.Int(4),
ResourceGroupName: pulumi.String("example-rg"),
ServerCountPerRack: pulumi.Int(8),
Tags: pulumi.StringMap{
"keyID": pulumi.String("keyValue"),
},
TerminalServerConfiguration: &managednetworkfabric.TerminalServerConfigurationArgs{
Password: pulumi.String("xxxx"),
PrimaryIpv4Prefix: pulumi.String("10.0.0.12/30"),
PrimaryIpv6Prefix: pulumi.String("4FFE:FFFF:0:CD30::a8/127"),
SecondaryIpv4Prefix: pulumi.String("20.0.0.13/30"),
SecondaryIpv6Prefix: pulumi.String("6FFE:FFFF:0:CD30::ac/127"),
SerialNumber: pulumi.String("123456"),
Username: pulumi.String("username"),
},
})
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.managednetworkfabric.NetworkFabric;
import com.pulumi.azurenative.managednetworkfabric.NetworkFabricArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.ManagementNetworkConfigurationPropertiesArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.VpnConfigurationPropertiesArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.VpnConfigurationPropertiesOptionAPropertiesArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.BfdConfigurationArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.FabricOptionBPropertiesArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.RouteTargetInformationArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.TerminalServerConfigurationArgs;
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 networkFabric = new NetworkFabric("networkFabric", NetworkFabricArgs.builder()
.annotation("annotation")
.fabricASN(29249)
.fabricVersion("1.x.x")
.ipv4Prefix("10.18.0.0/19")
.ipv6Prefix("3FFE:FFFF:0:CD40::/59")
.location("eastuseuap")
.managementNetworkConfiguration(ManagementNetworkConfigurationPropertiesArgs.builder()
.infrastructureVpnConfiguration(VpnConfigurationPropertiesArgs.builder()
.networkToNetworkInterconnectId("/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-fabric/networkToNetworkInterconnects/example-nni")
.optionAProperties(VpnConfigurationPropertiesOptionAPropertiesArgs.builder()
.bfdConfiguration(BfdConfigurationArgs.builder()
.intervalInMilliSeconds(300)
.multiplier(10)
.build())
.mtu(1501)
.peerASN(1235)
.primaryIpv4Prefix("10.0.0.12/30")
.primaryIpv6Prefix("4FFE:FFFF:0:CD30::a8/127")
.secondaryIpv4Prefix("20.0.0.13/30")
.secondaryIpv6Prefix("6FFE:FFFF:0:CD30::ac/127")
.vlanId(3001)
.build())
.optionBProperties(FabricOptionBPropertiesArgs.builder()
.exportRouteTargets("65046:10050")
.importRouteTargets("65046:10050")
.routeTargets(RouteTargetInformationArgs.builder()
.exportIpv4RouteTargets("65046:10039")
.exportIpv6RouteTargets("65046:10039")
.importIpv4RouteTargets("65046:10039")
.importIpv6RouteTargets("65046:10039")
.build())
.build())
.peeringOption("OptionA")
.build())
.workloadVpnConfiguration(VpnConfigurationPropertiesArgs.builder()
.networkToNetworkInterconnectId("/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-fabric/networkToNetworkInterconnects/example-nni")
.optionAProperties(VpnConfigurationPropertiesOptionAPropertiesArgs.builder()
.bfdConfiguration(BfdConfigurationArgs.builder()
.intervalInMilliSeconds(300)
.multiplier(5)
.build())
.mtu(1500)
.peerASN(61234)
.primaryIpv4Prefix("10.0.0.14/30")
.primaryIpv6Prefix("2FFE:FFFF:0:CD30::a7/126")
.secondaryIpv4Prefix("10.0.0.15/30")
.secondaryIpv6Prefix("2FFE:FFFF:0:CD30::ac/126")
.vlanId(3000)
.build())
.optionBProperties(FabricOptionBPropertiesArgs.builder()
.exportRouteTargets("65046:10050")
.importRouteTargets("65046:10050")
.routeTargets(RouteTargetInformationArgs.builder()
.exportIpv4RouteTargets("65046:10039")
.exportIpv6RouteTargets("65046:10039")
.importIpv4RouteTargets("65046:10039")
.importIpv6RouteTargets("65046:10039")
.build())
.build())
.peeringOption("OptionA")
.build())
.build())
.networkFabricControllerId("/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/example-fabricController")
.networkFabricName("example-fabric")
.networkFabricSku("M4-A400-A100-C16-aa")
.rackCount(4)
.resourceGroupName("example-rg")
.serverCountPerRack(8)
.tags(Map.of("keyID", "keyValue"))
.terminalServerConfiguration(TerminalServerConfigurationArgs.builder()
.password("xxxx")
.primaryIpv4Prefix("10.0.0.12/30")
.primaryIpv6Prefix("4FFE:FFFF:0:CD30::a8/127")
.secondaryIpv4Prefix("20.0.0.13/30")
.secondaryIpv6Prefix("6FFE:FFFF:0:CD30::ac/127")
.serialNumber("123456")
.username("username")
.build())
.build());
}
}

Import

An existing resource can be imported using its type token, name, and identifier, e.g.

$ pulumi import azure-native:managednetworkfabric:NetworkFabric example-fabric /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedNetworkFabric/networkFabrics/{networkFabricName}

Properties

Link copied to clipboard

Administrative state of the resource.

Link copied to clipboard
val annotation: Output<String>?

Switch configuration description.

Link copied to clipboard
val azureApiVersion: Output<String>

The Azure API version of the resource.

Link copied to clipboard

Configuration state of the resource.

Link copied to clipboard
val fabricASN: Output<Double>

ASN of CE devices for CE/PE connectivity.

Link copied to clipboard
val fabricVersion: Output<String>?

The version of Network Fabric.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val ipv4Prefix: Output<String>

IPv4Prefix for Management Network. Example: 10.1.0.0/19.

Link copied to clipboard
val ipv6Prefix: Output<String>?

IPv6Prefix for Management Network. Example: 3FFE:FFFF:0:CD40::/59

Link copied to clipboard

List of L2 Isolation Domain resource IDs under the Network Fabric.

Link copied to clipboard

List of L3 Isolation Domain resource IDs under the Network Fabric.

Link copied to clipboard
val location: Output<String>

The geo-location where the resource lives

Link copied to clipboard

Configuration to be used to setup the management network.

Link copied to clipboard
val name: Output<String>

The name of the resource

Link copied to clipboard

Azure resource ID for the NetworkFabricController the NetworkFabric belongs.

Link copied to clipboard

Supported Network Fabric SKU.Example: Compute / Aggregate racks. Once the user chooses a particular SKU, only supported racks can be added to the Network Fabric. The SKU determines whether it is a single / multi rack Network Fabric.

Link copied to clipboard

Provides you the latest status of the NFC service, whether it is Accepted, updating, Succeeded or Failed. During this process, the states keep changing based on the status of NFC provisioning.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val rackCount: Output<Int>?

Number of compute racks associated to Network Fabric.

Link copied to clipboard
val racks: Output<List<String>>

List of NetworkRack resource IDs under the Network Fabric. The number of racks allowed depends on the Network Fabric SKU.

Link copied to clipboard
val routerIds: Output<List<String>>

Array of router IDs.

Link copied to clipboard
val serverCountPerRack: Output<Int>

Number of servers.Possible values are from 1-16.

Link copied to clipboard

Azure Resource Manager metadata containing createdBy and modifiedBy information.

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

Resource tags.

Link copied to clipboard

Network and credentials configuration currently applied to terminal server.

Link copied to clipboard
val type: Output<String>

The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"

Link copied to clipboard
val urn: Output<String>