Record Class DesignConstraints
java.lang.Object
java.lang.Record
com.eqixiac.equinix.design.spec.DesignConstraints
- Record Components:
requiredMetros- metro codes every design must includeexcludedMetros- metro codes no design may includerequiredRegions- regions every design must have at least one metro inexcludedRegions- regions no design may usecomplianceZones- regulatory zones the design must stay withingeoZones- Fabric geo scopes / geo zones (for exampleEU,UK,CH,BR,AU) traffic must stay inside: a data-sovereignty limitminimumRedundancy- the least redundancy acceptable; may benullmaxLatencyMs- round-trip latency ceiling from every site to its serving metro, in ms; may benullminMetros- fewest metros a design may use; may benullmaxMetros- most metros a design may use; may benullminSurvivalPct- the least share of the design's service, in percent (0 to 100), that must survive its worst single-element failure, measured by failure simulation; may benull(not required). Omitted from JSON, YAML and the fingerprint when unset, so specs that do not use it keep their fingerprint. It takes precedence over the older spec labeldesign.min_survival_pct.
public record DesignConstraints(List<String> requiredMetros, List<String> excludedMetros, List<Region> requiredRegions, List<Region> excludedRegions, List<ComplianceZone> complianceZones, List<String> geoZones, RedundancyTier minimumRedundancy, Double maxLatencyMs, Integer minMetros, Integer maxMetros, Double minSurvivalPct)
extends Record
Hard limits: a design that breaks one is not offered, whatever its score.
-
Constructor Summary
ConstructorsConstructorDescriptionDesignConstraints(List<String> requiredMetros, List<String> excludedMetros, List<Region> requiredRegions, List<Region> excludedRegions, List<ComplianceZone> complianceZones, List<String> geoZones, RedundancyTier minimumRedundancy, Double maxLatencyMs, Integer minMetros, Integer maxMetros, Double minSurvivalPct) Normalises every list to an immutable, non-null list. -
Method Summary
Modifier and TypeMethodDescriptionReturns the value of thecomplianceZonesrecord component.final booleanIndicates whether some other object is "equal to" this one.Returns the value of theexcludedMetrosrecord component.Returns the value of theexcludedRegionsrecord component.geoZones()Returns the value of thegeoZonesrecord component.final inthashCode()Returns a hash code value for this object.Returns the value of themaxLatencyMsrecord component.Returns the value of themaxMetrosrecord component.Returns the value of theminimumRedundancyrecord component.Returns the value of theminMetrosrecord component.Returns the value of theminSurvivalPctrecord component.static DesignConstraintsnone()Returns the value of therequiredMetrosrecord component.Returns the value of therequiredRegionsrecord component.final StringtoString()Returns a string representation of this record class.
-
Constructor Details
-
DesignConstraints
public DesignConstraints(List<String> requiredMetros, List<String> excludedMetros, List<Region> requiredRegions, List<Region> excludedRegions, List<ComplianceZone> complianceZones, List<String> geoZones, RedundancyTier minimumRedundancy, Double maxLatencyMs, Integer minMetros, Integer maxMetros, Double minSurvivalPct) Normalises every list to an immutable, non-null list.
-
-
Method Details
-
none
- Returns:
- constraints that limit nothing
-
toString
-
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared withObjects::equals(Object,Object). -
requiredMetros
Returns the value of therequiredMetrosrecord component.- Returns:
- the value of the
requiredMetrosrecord component
-
excludedMetros
Returns the value of theexcludedMetrosrecord component.- Returns:
- the value of the
excludedMetrosrecord component
-
requiredRegions
Returns the value of therequiredRegionsrecord component.- Returns:
- the value of the
requiredRegionsrecord component
-
excludedRegions
Returns the value of theexcludedRegionsrecord component.- Returns:
- the value of the
excludedRegionsrecord component
-
complianceZones
Returns the value of thecomplianceZonesrecord component.- Returns:
- the value of the
complianceZonesrecord component
-
geoZones
-
minimumRedundancy
Returns the value of theminimumRedundancyrecord component.- Returns:
- the value of the
minimumRedundancyrecord component
-
maxLatencyMs
Returns the value of themaxLatencyMsrecord component.- Returns:
- the value of the
maxLatencyMsrecord component
-
minMetros
-
maxMetros
-
minSurvivalPct
Returns the value of theminSurvivalPctrecord component.- Returns:
- the value of the
minSurvivalPctrecord component
-