Class PlanValueAssessment

java.lang.Object
com.eqixiac.equinix.design.optimizer.wizard.model.PlanValueAssessment

public final class PlanValueAssessment extends Object
Fluent builder, returned by DeploymentPlan.valueRealization(), that computes the egress savings a deployment plan produces once the caller declares their per-provider monthly egress volumes, net of the plan's cost.

Beta. A plan that depends on native multicloud links (role REPLACEMENT) pays their fees as well as the Equinix cost, so assess() subtracts PlanPricing.getNativeReplacementMonthlyCost() from the net; when that fee is unpriced the net is withheld. Egress from a cloud the plan reaches only through such a link is priced at the link's per-GB rate (EgressPath.MULTICLOUD_INTERCONNECT), not at the Fabric private-interconnect rate.

PlanValueRealization vr = plan.valueRealization()
    .egress(CloudProviderType.AWS, 50, DataUnit.TERABYTE)
    .egress(CloudProviderType.AZURE, 20, DataUnit.TERABYTE)
    .assess();

System.out.println(vr.toMarkdown());
  • Method Details

    • egress

      public PlanValueAssessment egress(CloudProviderType provider, double amount, DataUnit unit)
      Declares a cloud provider's monthly egress volume. Repeatable - call once per provider; each declared provider becomes one row of the assessment.
      Parameters:
      provider - the cloud provider the egress leaves
      amount - the monthly egress volume, in units
      unit - the unit of amount (SI decimal: 1 TB = 1000 GB)
      Returns:
      this assessment for method chaining
      Throws:
      IllegalArgumentException - if amount is negative
    • egressTerabytes

      public PlanValueAssessment egressTerabytes(CloudProviderType provider, double terabytes)
      Declares a cloud provider's monthly egress volume in terabytes. Shorthand for egress(provider, terabytes, DataUnit.TERABYTE).
      Parameters:
      provider - the cloud provider the egress leaves
      terabytes - the monthly egress volume in terabytes (SI decimal)
      Returns:
      this assessment for method chaining
      Throws:
      IllegalArgumentException - if terabytes is negative
    • rateCard

      public PlanValueAssessment rateCard(RateCard rateCard)
      Sets the rate card the egress rates are resolved from. When omitted, assess() defaults to RateCard.standardChain(plan's fabric) - live Equinix pricing layered over the bundled reference figures.
      Parameters:
      rateCard - the rate card to resolve egress rates from
      Returns:
      this assessment for method chaining
    • term

      public PlanValueAssessment term(Term term)
      Sets the commitment term used when resolving egress rates. Defaults to Term.MONTH_12.
      Parameters:
      term - the commitment term
      Returns:
      this assessment for method chaining
    • assess

      public PlanValueRealization assess()
      Computes the plan's value realization.
      Returns:
      the egress savings netted against the plan's interconnect cost