Internet Access
Equinix Internet Access v2 service lifecycle with dry run, and the per-IBX catalogue.
Scope#
Equinix Internet Access (EIA) delivers internet transit in an IBX, over a physical port or a Fabric connection. The SDK covers the EIA v2 service lifecycle and the EIA v1 catalogue and ordering reads.
| Accessor | Covers |
|---|---|
services() | EIA v2 services: create, read, search, update, delete |
ibxs() | Per-IBX availability and location data |
prices(), accounts(), termsAndConditions(), operationalUnits(), signaturePolicies(), productConfigurations(), purchaseOrders(), orders() | EIA v1 ordering reads |
cages(), cabinets(), patchPanels(), connectionServices() | Site infrastructure reads |
unifiedServices(), ipBlocks() | The Fabric-side EIA services and IP blocks, shared with fabric.eiaServices() and fabric.ipBlocks() |
Service lifecycle#
import com.eqixiac.equinix.internetaccess.enums.ServiceState;
import com.eqixiac.equinix.internetaccess.model.InternetAccessService;
import com.eqixiac.equinix.internetaccess.model.json.creators.ChangeOperationUpdate;
import com.eqixiac.equinix.internetaccess.model.json.creators.ServiceSearchRequest;
for (InternetAccessService service : internet.services().search(new ServiceSearchRequest().state(ServiceState.ACTIVE))) {
System.out.println(service.getUuid() + " " + service.getName() + " " + service.getState());
}
InternetAccessService service = internet.services().getByUuid("service-uuid");
List<ChangeOperationUpdate> resize = List.of(ChangeOperationUpdate.replace("/bandwidth", "500"));
internet.services().update(service.getUuid(), resize, true); // dryRun: validate only
internet.services().update(service.getUuid(), resize); // apply
internet.services().delete(service.getUuid(), true); // validate the deleteinternet.services().define() starts the create builder with name, type, connection or connections, routingProtocol and order. The specification defines no dry run for EIA v2 create, so a create places an order.
The search in the block filters on /state. The specification also lists /type as a filter property, which the live service rejected on 2026-11-11. The search pages through query parameters and sends the same filter body with each page (Pagination).
IBX catalogue#
Among the APIs this SDK covers, ibxs() alone returns coordinates per data center. The design layer uses it for IBX-to-IBX latency estimates, and EquinixConfig.enrichMetroRegistry(true) merges it into the metro registry.
import com.eqixiac.equinix.design.geo.SpeedOfLightLatency;
import com.eqixiac.equinix.internetaccess.model.Ibx;
Ibx la4 = internet.ibxs().getByCode("LA4");
Ibx sv5 = internet.ibxs().getByCode("SV5");
double km = SpeedOfLightLatency.distanceKm(la4, sv5);
double roundTripFloorMs = SpeedOfLightLatency.roundTrip().millisBetween(la4, sv5);availability(connectionType) lists the IBXs where a connection type can be ordered.
Fit#
| Need | Choice | Trade-off |
|---|---|---|
| Internet breakout for a cage or a Network Edge device | Internet Access | One provider relationship; routing is BGP or static with Equinix as the upstream |
| Multi-homed transit with carrier choice | Cross connects to carriers in the IBX | More control and more contracts |
| Peering at an exchange | Equinix Internet Exchange, see the Beta exchange services and Peering Intelligence | Reaches the networks present at the exchange, not the whole internet |