Package com.eqixiac.equinix.design.constraint
package com.eqixiac.equinix.design.constraint
The built-in hard limits of the Metro Optimizer: one small, pure
Constraint per field of
DesignConstraints, plus the workload rules, the
single-currency budget and the every-metro-used rule. Constraints.forSpec(DesignSpec)
picks the ones a spec needs.-
ClassesClassDescriptionThe expected monthly cost must not exceed
commercial.budgetMaxMonthly.Every metro must be in a region that at least one zone ofconstraints.complianceZonesallows (ComplianceZone.getAllowedRegions()): the design stays within the stated zones.Chooses the built-in constraints a spec needs, and shared helpers.Every metro of a design must carry a workload (primary or standby) or a cloud connection.No metro inconstraints.excludedMetrosmay be used.No metro may be in a region ofconstraints.excludedRegions.Data sovereignty: every metro must belong to at least one ofconstraints.geoZonesaccording to the live catalogue'sgeoScopes/geoZonesfor that metro (matched case-insensitively;CH,AU,BR,JP,CA,USalso match the corresponding geo scope).Every site's round trip to its nearest portfolio metro must be withinconstraints.maxLatencyMs.constraints.minMetrosandconstraints.maxMetros.constraints.minimumRedundancyas an explicit rule on the metro set (seeRedundancyTier): fewest metros, fewest distinct regions, and forN_PLUS_1two metros sharing a region.Every workload with apinnedMetroneeds that metro in the design.Every required cloud must be reachable from at least one metro of the design, and every workload must reach each required cloud it names from the metro it is placed in (a workload runs in one metro).Every metro inconstraints.requiredMetrosmust be part of the design.The design must have at least one metro in every region ofconstraints.requiredRegions.Each workload with amaxLatencyMsmust be placed (byWorkloadPlacer) in a metro whose worst known round trip to any site is within the limit.