Package com.eqixiac.equinix.design.spec


package com.eqixiac.equinix.design.spec
The shared design document every design engine reads: DesignSpec.

A DesignSpec states intent, not mechanism: where the users and facilities are (SiteIntent), what runs (WorkloadIntent), which clouds and networks it must reach (CloudIntent, PeerIntent), the hard limits (DesignConstraints), what "better" means (DesignObjectives) and the commercial frame (CommercialTerms).

It is immutable, versioned (schemaVersion), and round-trips through JSON and YAML (DesignSpecIO), so a design can be stored in version control, diffed, reviewed and replayed. fingerprint() gives a stable identity for a spec's content. The optimizer, the cost model, peering analysis, the deployment planner and the MCP tools all take the same document, so their results can be chained and compared.

  • Class
    Description
    A cloud or service provider the design must reach over private interconnect, with the traffic that drives its cost.
    The commercial frame the design is priced and judged in.
    Exchange rates pinned in the spec: they take precedence over every other rate source (a caller's converter, the live ECB rates, the bundled table) and are part of the spec's fingerprint, so a run can be reproduced exactly.
    Hard limits: a design that breaks one is not offered, whatever its score.
    What "better" means for this design: a weight per objective id.
    One design, stated as intent.
    Reads and writes a DesignSpec as JSON or YAML.
    A network the design wants to exchange traffic with, identified by its autonomous system number.
    A place the design must serve: an office, a user population, a factory or an existing data centre.
    One problem found by DesignSpec.validate().
    How serious a SpecIssue is.
    Something that runs and needs connectivity.