Class AzureExpressRouteAdapter<T>

java.lang.Object
com.eqixiac.equinix.fabric.model.implementation.cloud.AzureExpressRouteAdapter<T>
Type Parameters:
T - the type of the Azure SDK object being adapted
All Implemented Interfaces:
CloudProviderConnectionAdapter<T>

public class AzureExpressRouteAdapter<T> extends Object implements CloudProviderConnectionAdapter<T>
Adapter for bridging Microsoft Azure ExpressRoute SDK objects with Equinix Fabric connections.

When creating an Equinix Fabric connection to Azure ExpressRoute you need:

  • Authentication Key: the ExpressRoute Service Key (a GUID provided by Azure)
  • Service Profile: the Equinix Fabric service profile UUID for Azure ExpressRoute
  • Peering Type: PeeringType.PRIVATE or PeeringType.MICROSOFT
  • Metro: the Equinix metro of the ExpressRoute peering location (for example "SV" for Silicon Valley), sent as zSide.accessPoint.location.metroCode

No sellerRegion is sent: none of the Fabric v4 4.34.0 Azure examples (Colo2Sp-Azure-Primary, Vd2Sp-Azure, Fcr2Sp-Azure, Metal2Sp-Azure) carries one; the peering location is expressed by the metro. getSellerRegion() returns null.

AzureExpressRouteAdapter<?> adapter = AzureExpressRouteAdapter.of(
    "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",  // ExpressRoute Service Key
    "equinix-azure-profile-uuid",              // Equinix service profile
    PeeringType.PRIVATE,                       // Peering type
    "SV"                                       // Equinix metro of the peering location
);

Connection conn = fabric.connections()
    .define(ConnectionType.EVPL_VC)
    .name("Azure-ExpressRoute")
    .bandwidth(100)
    .aSideAccessPointPort(portUuid, LinkProtocol.qinq().vlanSTag(1500).vlanCTag(10).create())
    .zSideCloudProvider(adapter)
    .notification("ops@example.com")
    .create();
Author:
ianjones
See Also:
  • Constructor Details

    • AzureExpressRouteAdapter

      public AzureExpressRouteAdapter(T source, String expressRouteServiceKey, String serviceProfileUuid, PeeringType peeringType, String metroCode)
      Creates an adapter wrapping an Azure ExpressRoute SDK object.
      Parameters:
      source - the Azure SDK object (e.g., ExpressRouteCircuit)
      expressRouteServiceKey - the ExpressRoute Service Key (GUID)
      serviceProfileUuid - the Equinix Fabric service profile UUID for Azure
      peeringType - the peering type (PRIVATE or MICROSOFT)
      metroCode - the Equinix metro of the peering location, e.g. "SV"; required
  • Method Details

    • of

      public static AzureExpressRouteAdapter<Void> of(String expressRouteServiceKey, String serviceProfileUuid, PeeringType peeringType, String metroCode)
      Creates an adapter without an Azure SDK object.
      Parameters:
      expressRouteServiceKey - the ExpressRoute Service Key (GUID)
      serviceProfileUuid - the Equinix Fabric service profile UUID for Azure
      peeringType - the peering type
      metroCode - the Equinix metro of the peering location; required
      Returns:
      a new adapter configured for Azure ExpressRoute
    • getSellerRegion

      public String getSellerRegion()
      Azure connections send no sellerRegion (see the class description).
      Specified by:
      getSellerRegion in interface CloudProviderConnectionAdapter<T>
      Returns:
      null
    • getProviderType

      public CloudProviderType getProviderType()
      Description copied from interface: CloudProviderConnectionAdapter
      Returns the cloud provider type for this adapter.

      Used for logging, diagnostics, and provider-specific defaults. Implementations should return the appropriate CloudProviderType constant.

      Specified by:
      getProviderType in interface CloudProviderConnectionAdapter<T>
      Returns:
      the cloud provider type
    • getPreferredConnectionType

      public ConnectionType getPreferredConnectionType()
      Description copied from interface: CloudProviderConnectionAdapter
      Returns the preferred connection type for this cloud provider.

      Most cloud provider connections use ConnectionType.EVPL_VC, but implementations can override this to return a different default. The user can always override the connection type when calling the builder.

      Specified by:
      getPreferredConnectionType in interface CloudProviderConnectionAdapter<T>
      Returns:
      the preferred connection type; defaults to ConnectionType.EVPL_VC
    • getPreferredLinkProtocol

      public LinkProtocol getPreferredLinkProtocol()
      Description copied from interface: CloudProviderConnectionAdapter
      Returns the preferred link protocol for this cloud provider connection.

      Most cloud provider connections use DOT1Q encapsulation. Implementations can override this to provide a provider-specific default. Returns null to indicate no default (the user must specify the link protocol explicitly).

      Specified by:
      getPreferredLinkProtocol in interface CloudProviderConnectionAdapter<T>
      Returns:
      the preferred link protocol, or null if none
    • getPreferredPeeringType

      public PeeringType getPreferredPeeringType()
      Description copied from interface: CloudProviderConnectionAdapter
      Returns the preferred peering type for this cloud provider connection.

      Relevant for providers that support multiple peering types (e.g., Azure ExpressRoute supports PRIVATE and MICROSOFT peering). Returns null to indicate no preference.

      Specified by:
      getPreferredPeeringType in interface CloudProviderConnectionAdapter<T>
      Returns:
      the preferred peering type, or null if not applicable
    • describe

      public String describe()
      Description copied from interface: CloudProviderConnectionAdapter
      Returns a human-readable description of the cloud provider connection for use in logging and diagnostics.
      Specified by:
      describe in interface CloudProviderConnectionAdapter<T>
      Returns:
      a description string such as "AWS Direct Connect to us-east-1"