Interface FabricGateway

All Known Implementing Classes:
Fabric

public interface FabricGateway
Narrow capability view of Fabric that the value-add design engines depend on - the metro/service-profile/cloud-router/connection/routing-protocol resources the optimizer, deployment wizard, and peering intelligence actually use.

Fabric implements this interface, so existing callers (which pass a concrete Fabric) are unaffected; the engines, however, depend only on this small interface rather than the full concrete client. That is the composition boundary the design module extraction was built around: it keeps the engines decoupled from the entire Fabric surface and makes them straightforward to unit-test against a stub gateway.

Custom implementations need not back every method with a live client. The engines degrade deliberately when a surface is unavailable: the deployment wizard's PlanValidator records checks it cannot run as SKIPPED (with the reason) rather than passing or failing them, the optimizer reports an unreadable catalog as an incomplete scan, and peering intelligence marks Fabric availability as "not analyzed". A stub that throws from a method it cannot serve is therefore a legitimate offline gateway - but metros() and serviceProfiles() feed everything and should be real for any meaningful run.

Author:
ianjones
  • Method Details

    • metros

      Metros metros()
      Returns:
      the Metros client - the metro catalog (codes, regions, coordinates, connected-metro latencies) every design engine reads
    • serviceProfiles

      ServiceProfiles serviceProfiles()
      Returns:
      the Service Profiles client - provider availability for the optimizer, z-side profile selection for the wizard, and Fabric on-ramp cross-referencing for peering intelligence
    • cloudRouters

      CloudRouters cloudRouters()
      Returns:
      the Cloud Routers client - used by the deployment wizard to validate router packages and to create Cloud Routers on execute()
    • connections

      Connections connections()
      Returns:
      the Connections client - used by the deployment wizard for connection dry-runs and creation
    • routingProtocols

      RoutingProtocols routingProtocols()
      Returns:
      the Routing Protocols client - used by the deployment wizard to attach BGP/DIRECT protocols to created connections
    • prices

      Prices prices()
      Returns:
      the Prices client - live Fabric pricing for EquinixRateCard and the engines' cost estimation