import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages an ExpressRoute Circuit Peering. * * ## Example Usage * * ### Creating A Microsoft Peering) * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "exprtTest", * location: "West Europe", * }); * const exampleExpressRouteCircuit = new azure.network.ExpressRouteCircuit("example", { * name: "expressRoute1", * resourceGroupName: example.name, * location: example.location, * serviceProviderName: "Equinix", * peeringLocation: "Silicon Valley", * bandwidthInMbps: 50, * sku: { * tier: "Standard", * family: "MeteredData", * }, * allowClassicOperations: false, * tags: { * environment: "Production", * }, * }); * const exampleExpressRouteCircuitPeering = new azure.network.ExpressRouteCircuitPeering("example", { * peeringType: "MicrosoftPeering", * expressRouteCircuitName: exampleExpressRouteCircuit.name, * resourceGroupName: example.name, * peerAsn: 100, * primaryPeerAddressPrefix: "123.0.0.0/30", * secondaryPeerAddressPrefix: "123.0.0.4/30", * ipv4Enabled: true, * vlanId: 300, * microsoftPeeringConfig: { * advertisedPublicPrefixes: ["123.1.0.0/24"], * }, * ipv6: { * primaryPeerAddressPrefix: "2002:db01::/126", * secondaryPeerAddressPrefix: "2003:db01::/126", * enabled: true, * microsoftPeering: { * advertisedPublicPrefixes: ["2002:db01::/126"], * }, * }, * }); * ``` * * ### Creating Azure Private Peering) * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "exprtTest", * location: "West Europe", * }); * const exampleExpressRouteCircuit = new azure.network.ExpressRouteCircuit("example", { * name: "expressRoute1", * resourceGroupName: example.name, * location: example.location, * serviceProviderName: "Equinix", * peeringLocation: "Silicon Valley", * bandwidthInMbps: 50, * sku: { * tier: "Standard", * family: "MeteredData", * }, * allowClassicOperations: false, * tags: { * environment: "Production", * }, * }); * const exampleExpressRouteCircuitPeering = new azure.network.ExpressRouteCircuitPeering("example", { * peeringType: "AzurePrivatePeering", * expressRouteCircuitName: exampleExpressRouteCircuit.name, * resourceGroupName: example.name, * peerAsn: 100, * primaryPeerAddressPrefix: "123.0.0.0/30", * secondaryPeerAddressPrefix: "123.0.0.4/30", * ipv4Enabled: true, * vlanId: 300, * ipv6: { * primaryPeerAddressPrefix: "2002:db01::/126", * secondaryPeerAddressPrefix: "2003:db01::/126", * enabled: true, * }, * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Network` - 2025-01-01 * * ## Import * * ExpressRoute Circuit Peerings can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:network/expressRouteCircuitPeering:ExpressRouteCircuitPeering peering1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/expressRouteCircuits/myExpressRoute/peerings/peering1 * ``` */ export declare class ExpressRouteCircuitPeering extends pulumi.CustomResource { /** * Get an existing ExpressRouteCircuitPeering resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: ExpressRouteCircuitPeeringState, opts?: pulumi.CustomResourceOptions): ExpressRouteCircuitPeering; /** * Returns true if the given object is an instance of ExpressRouteCircuitPeering. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is ExpressRouteCircuitPeering; /** * The ASN used by Azure. */ readonly azureAsn: pulumi.Output; /** * The name of the ExpressRoute Circuit in which to create the Peering. Changing this forces a new resource to be created. */ readonly expressRouteCircuitName: pulumi.Output; readonly gatewayManagerEtag: pulumi.Output; /** * A boolean value indicating whether the IPv4 peering is enabled. Defaults to `true`. */ readonly ipv4Enabled: pulumi.Output; /** * A `ipv6` block as defined below. */ readonly ipv6: pulumi.Output; /** * A `microsoftPeeringConfig` block as defined below. Required when `peeringType` is set to `MicrosoftPeering` and config for IPv4. */ readonly microsoftPeeringConfig: pulumi.Output; /** * The Either a 16-bit or a 32-bit ASN. Can either be public or private. */ readonly peerAsn: pulumi.Output; /** * The type of the ExpressRoute Circuit Peering. Acceptable values include `AzurePrivatePeering`, `AzurePublicPeering` and `MicrosoftPeering`. * * > **Note:** only one Peering of each Type can be created. Attempting to create multiple peerings of the same type will overwrite the original peering. */ readonly peeringType: pulumi.Output; /** * The Primary Port used by Azure for this Peering. */ readonly primaryAzurePort: pulumi.Output; /** * A subnet for the primary link. */ readonly primaryPeerAddressPrefix: pulumi.Output; /** * The name of the resource group in which to create the Express Route Circuit Peering. Changing this forces a new resource to be created. */ readonly resourceGroupName: pulumi.Output; /** * The ID of the Route Filter. Only available when `peeringType` is set to `MicrosoftPeering`. * * > **Note:** `ipv6` can be specified when `peeringType` is `MicrosoftPeering` or `AzurePrivatePeering` */ readonly routeFilterId: pulumi.Output; /** * The Secondary Port used by Azure for this Peering. */ readonly secondaryAzurePort: pulumi.Output; /** * A subnet for the secondary link. */ readonly secondaryPeerAddressPrefix: pulumi.Output; /** * The shared key. Can be a maximum of 25 characters. */ readonly sharedKey: pulumi.Output; /** * A valid VLAN ID to establish this peering on. */ readonly vlanId: pulumi.Output; /** * Create a ExpressRouteCircuitPeering resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: ExpressRouteCircuitPeeringArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ExpressRouteCircuitPeering resources. */ export interface ExpressRouteCircuitPeeringState { /** * The ASN used by Azure. */ azureAsn?: pulumi.Input; /** * The name of the ExpressRoute Circuit in which to create the Peering. Changing this forces a new resource to be created. */ expressRouteCircuitName?: pulumi.Input; gatewayManagerEtag?: pulumi.Input; /** * A boolean value indicating whether the IPv4 peering is enabled. Defaults to `true`. */ ipv4Enabled?: pulumi.Input; /** * A `ipv6` block as defined below. */ ipv6?: pulumi.Input; /** * A `microsoftPeeringConfig` block as defined below. Required when `peeringType` is set to `MicrosoftPeering` and config for IPv4. */ microsoftPeeringConfig?: pulumi.Input; /** * The Either a 16-bit or a 32-bit ASN. Can either be public or private. */ peerAsn?: pulumi.Input; /** * The type of the ExpressRoute Circuit Peering. Acceptable values include `AzurePrivatePeering`, `AzurePublicPeering` and `MicrosoftPeering`. * * > **Note:** only one Peering of each Type can be created. Attempting to create multiple peerings of the same type will overwrite the original peering. */ peeringType?: pulumi.Input; /** * The Primary Port used by Azure for this Peering. */ primaryAzurePort?: pulumi.Input; /** * A subnet for the primary link. */ primaryPeerAddressPrefix?: pulumi.Input; /** * The name of the resource group in which to create the Express Route Circuit Peering. Changing this forces a new resource to be created. */ resourceGroupName?: pulumi.Input; /** * The ID of the Route Filter. Only available when `peeringType` is set to `MicrosoftPeering`. * * > **Note:** `ipv6` can be specified when `peeringType` is `MicrosoftPeering` or `AzurePrivatePeering` */ routeFilterId?: pulumi.Input; /** * The Secondary Port used by Azure for this Peering. */ secondaryAzurePort?: pulumi.Input; /** * A subnet for the secondary link. */ secondaryPeerAddressPrefix?: pulumi.Input; /** * The shared key. Can be a maximum of 25 characters. */ sharedKey?: pulumi.Input; /** * A valid VLAN ID to establish this peering on. */ vlanId?: pulumi.Input; } /** * The set of arguments for constructing a ExpressRouteCircuitPeering resource. */ export interface ExpressRouteCircuitPeeringArgs { /** * The name of the ExpressRoute Circuit in which to create the Peering. Changing this forces a new resource to be created. */ expressRouteCircuitName: pulumi.Input; /** * A boolean value indicating whether the IPv4 peering is enabled. Defaults to `true`. */ ipv4Enabled?: pulumi.Input; /** * A `ipv6` block as defined below. */ ipv6?: pulumi.Input; /** * A `microsoftPeeringConfig` block as defined below. Required when `peeringType` is set to `MicrosoftPeering` and config for IPv4. */ microsoftPeeringConfig?: pulumi.Input; /** * The Either a 16-bit or a 32-bit ASN. Can either be public or private. */ peerAsn?: pulumi.Input; /** * The type of the ExpressRoute Circuit Peering. Acceptable values include `AzurePrivatePeering`, `AzurePublicPeering` and `MicrosoftPeering`. * * > **Note:** only one Peering of each Type can be created. Attempting to create multiple peerings of the same type will overwrite the original peering. */ peeringType: pulumi.Input; /** * A subnet for the primary link. */ primaryPeerAddressPrefix?: pulumi.Input; /** * The name of the resource group in which to create the Express Route Circuit Peering. Changing this forces a new resource to be created. */ resourceGroupName: pulumi.Input; /** * The ID of the Route Filter. Only available when `peeringType` is set to `MicrosoftPeering`. * * > **Note:** `ipv6` can be specified when `peeringType` is `MicrosoftPeering` or `AzurePrivatePeering` */ routeFilterId?: pulumi.Input; /** * A subnet for the secondary link. */ secondaryPeerAddressPrefix?: pulumi.Input; /** * The shared key. Can be a maximum of 25 characters. */ sharedKey?: pulumi.Input; /** * A valid VLAN ID to establish this peering on. */ vlanId: pulumi.Input; }