Class DeploymentWizard

java.lang.Object
com.eqixiac.equinix.design.optimizer.wizard.DeploymentWizard

public final class DeploymentWizard extends Object
Entry point for the Deployment Wizard. Takes an OptimizationResult and produces an executable DeploymentPlan with Cloud Routers, provider connections, inter-metro backbone links, and routing protocol configurations - all with bandwidth sizing that drives accurate pricing.

Example Usage

DeploymentPlan plan = fabric.deploymentWizard(optimizationResult)
    .routerPackage("STANDARD")
    .routerNamePrefix("FCR")
    .providerConnectionType(ConnectionType.IP_VC)
    .backboneBandwidthMbps(10_000)
    .backboneTopology(BackboneTopology.FULL_MESH)
    .bandwidthStrategy(BandwidthStrategy.PER_WORKLOAD)
    .customerAsn(65100L)
    .withBFD(true, 300)
    .accountNumber(272010L)
    .projectId("your-project-uuid")
    .notifications("noc@example.com")
    .plan();

System.out.println(plan.toMarkdown());

// Plans are immutable: dryRun() returns a NEW plan with refreshed validation state,
// so reassign the result - calling it without using the return value validates nothing
// the caller can see.
plan = plan.dryRun();

// A brand-new customer gathers the per-connection authorization the plan enumerated
// (plan.getRequiredInputs()) and supplies it at execution time; each provider connection is
// then dry-run against its now-real Cloud Router before it is created for real:
DeploymentOutcome outcome = plan.execute(ExecutionInputs.builder()
    .authenticationKey("FCR-DC-to-aws", "123456789012")
    .vlanTag("FCR-DC-to-aws", 1001)
    .build());

Nothing is provisioned until execute() is called: plan() and dryRun() create no resources, so a plan can be reviewed, exported, and re-planned freely. Plan generation itself is delegated to a package-private engine.

Cloud-to-cloud flows (Beta)

A workload that depends on two or more clouds implies a flow between each pair of them. cloudToCloudStrategy(...) decides how the plan treats such a flow; the default is CloudToCloudStrategy.COMPARE: the Equinix path is planned as before and, where the multicloud environment catalog lists the planned region pair, a native provider-to-provider link is attached to DeploymentPlan.getMulticloudLinks() as a priced alternative. The SDK never provisions a native link. Use CloudToCloudStrategy.EQUINIX_ONLY for a plan without the comparison.

DeploymentPlan plan = fabric.deploymentWizard(optimizationResult)
    .cloudToCloudStrategy(CloudToCloudStrategy.COMPARE)   // the default
    .notifications("noc@example.com")
    .plan();

for (PlannedMulticloudInterconnect link : plan.multicloudLinksOrEmpty()) {
    System.out.println(link.describe() + ": " + link.getRecommendation());
}
See Also:
  • Method Details

    • builder

      public static DeploymentWizard.Builder builder(FabricGateway fabric, OptimizationResult optimizationResult)
      Creates a new deployment wizard builder from an optimization result.
      Parameters:
      fabric - the authenticated Fabric client for API access and execution
      optimizationResult - the optimization result to transform into a deployment plan
      Returns:
      a new DeploymentWizard.Builder instance