Class DeploymentWizard
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classFluent builder for configuring a deployment plan. -
Method Summary
Modifier and TypeMethodDescriptionstatic DeploymentWizard.Builderbuilder(FabricGateway fabric, OptimizationResult optimizationResult) Creates a new deployment wizard builder from an optimization result.
-
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 executionoptimizationResult- the optimization result to transform into a deployment plan- Returns:
- a new
DeploymentWizard.Builderinstance
-