Class Design

java.lang.Object
com.eqixiac.equinix.Design

public final class Design extends Object
A root-level entry point that gathers the SDK's value-add design capabilities - Metro Optimizer, Deployment Wizard, Peering Intelligence, Savings Calculator, and TCO comparison - in one discoverable place, alongside the API-domain clients (Fabric, NetworkEdge, ...).

Unlike those domain clients, Design is not constructed from credentials: it is a thin facade over an already-authenticated FabricGateway, which it reuses. This is intentional - the design engines run on top of an existing client (its metros, service profiles, prices, ...) rather than opening a second connection pool / token. Construct it over your Fabric, or obtain one from a shared Equinix session via Equinix.design():

Design design = Design.over(fabric);          // reuses fabric's client - no new transport
OptimizationResult result = design.optimizeMetros(spec).run();   // spec: a DesignSpec
SavingsEstimate savings = design.savingsCalculator()
        .egress(50, DataUnit.TERABYTE).fromCloud(CloudProviderType.AWS).inRegion("us-east-1")
        .calculate();

Each method returns the same fluent builder you would get from the corresponding Fabric accessor (e.g. Fabric.optimizeMetros()) or the underlying *.builder(FabricGateway) factory. Export utilities (design.export.TerraformExporter, design.export.TopologyDiagram) operate on a produced plan/result and are used directly.

  • Method Details

    • over

      public static Design over(FabricGateway fabric)
      Creates a design facade over an existing Fabric client (or any FabricGateway), reusing its authenticated transport.
      Parameters:
      fabric - the Fabric client the design engines read from
      Returns:
      a design facade
    • optimizeMetros

      public MetroOptimizer.Builder optimizeMetros()
      Begins a metro-optimization request.
      Returns:
      a MetroOptimizer.Builder bound to this facade's Fabric client
    • optimizeMetros

      public MetroOptimizer optimizeMetros(DesignSpec spec)
      Begins a metro optimization of a DesignSpec: the spec-first entry point (MetroOptimizer.forSpec).
      Parameters:
      spec - the design
      Returns:
      the optimizer run; call run()
    • resilience

      public ResilienceAnalyzer resilience(DesignSpec spec)
      Begins a resilience analysis of a DesignSpec (read-only): by default the optimiser's recommended portfolio is built into a design graph and every single failure and bounded pairs of failures are simulated (ResilienceAnalyzer.forSpec).
      Parameters:
      spec - the design
      Returns:
      the analysis; call run()
    • decisionRecord

      public DesignDecisionRecorder decisionRecord(DesignSpec spec)
      Begins a Design Decision Record for a DesignSpec (read-only): the optimiser, resilience analysis, growth and value models and a deployment plan, chained and recorded with their evidence (DesignDecisionRecorder.forSpec).
      Parameters:
      spec - the design
      Returns:
      the recorder; call record()
    • deploymentWizard

      public DeploymentWizard.Builder deploymentWizard(OptimizationResult optimizationResult)
      Begins a deployment-plan build from a prior optimization result.
      Parameters:
      optimizationResult - the optimization result to plan from
      Returns:
      a DeploymentWizard.Builder bound to this facade's Fabric client
    • peeringIntelligence

      public PeeringIntelligence.Builder peeringIntelligence()
      Begins a peering-intelligence request, resolving the PeeringDB credential the same way Fabric.peeringIntelligence() does: the EquinixConfig.peeringDbApiKey option configured on the underlying client (if this facade wraps a Fabric), else the PEERINGDB_API_KEY environment variable, else anonymous access.
      Returns:
      a PeeringIntelligence.Builder bound to this facade's Fabric client
    • peeringIntelligence

      public PeeringIntelligence.Builder peeringIntelligence(String peeringDbApiKey)
      Begins a peering-intelligence request authenticated to PeeringDB.
      Parameters:
      peeringDbApiKey - the PeeringDB API key (higher rate limits / contact fields)
      Returns:
      a PeeringIntelligence.Builder bound to this facade's Fabric client
    • savingsCalculator

      public SavingsCalculator.Builder savingsCalculator()
      Begins an egress savings calculation (public internet vs. private interconnect).
      Returns:
      a SavingsCalculator.Builder bound to this facade's Fabric client
    • tcoComparison

      public TcoCalculator.Builder tcoComparison()
      Begins a total-cost-of-ownership comparison (public cloud vs. on-prem vs. Equinix interconnect).
      Returns:
      a TcoCalculator.Builder bound to this facade's Fabric client
    • analyzeEstate

      public EstateAnalyzer.Builder analyzeEstate()
      Begins a read-only analysis of an existing estate (findings with priced savings, risks and hygiene issues). Needs a full Fabric client, because it reads ports, networks, service tokens and metrics as well as connections and routers; a run must be scoped.
      Returns:
      a EstateAnalyzer.Builder bound to this facade's Fabric client
      Throws:
      IllegalStateException - when this facade was created over a FabricGateway that is not a Fabric