eqixiacEquinix Infrastructure as Code

Cross connects and Digital LOA

Ordering and reading cross connects and Letters of Authorization through the operational APIs and the Fabric v4 Beta families.

Entry points#

Equinix publishes two API families for cross connects and for Letters of Authorization. The SDK has a client for each, and the session has one entry point per product that returns both.

Java
import com.eqixiac.equinix.CrossConnectApis;
import com.eqixiac.equinix.DigitalLoaApis;

CrossConnectApis crossConnects = eq.crossConnects();
crossConnects.orderApi();      // crossconnects v2: order, update, deinstall. Same client as eq.operations().crossConnects()
crossConnects.fabricApi();     // Fabric v4 Beta. Same client as eq.fabric().beta().crossConnects()

DigitalLoaApis loas = eq.digitalLoas();
loas.diloaApi();               // Digital LOA v1. Same client as eq.operations().digitalLoas()
loas.fabricApi();              // Fabric v4 Beta. Same client as eq.fabric().beta().loas()

The entry points add no behaviour. The four clients stay where their APIs live, and the Beta family can change without affecting the other.

Two API families#

ProductOperational APIFabric v4 family Beta
Cross Connecteq.crossConnects().orderApi(): crossconnects v2. Order, update, deinstall. Returns an order number.eq.crossConnects().fabricApi(): the cross connect as a resource with a UUID, a state, schedules, services, attachments, notes and actions
Digital LOAeq.digitalLoas().diloaApi(): diloa v1eq.digitalLoas().fabricApi(): create, search, get, update, actions, notes, consumers
UseChoose
An account without the Fabric Beta entitlementThe operational API
Ordering only, with status read from order historyThe operational API
The cross connect or LOA as a readable resource with state and historyThe Fabric v4 family

The Fabric v4 families are Beta. Equinix can change or withdraw them without the usual deprecation period, the account needs an entitlement for each, and the SDK types can change in a minor release (Beta families, Versioning).

A cross connect order is a physical order in both families. Neither defines a dry run.

Cross connect orders#

ops.crossConnects() has three operations, each returning an OrderResponse with the order number.

MethodRequestEffect
order(CrossConnectOrderRequest)A-side and Z-side locations and patch panels, media and connector types, contactsOrders one or more cross connects
update(orderId, CrossConnectUpdateRequest)Changes to an open orderUpdates the order
deinstall(CrossConnectDeinstallRequest)The cross connects to removeOrders the deinstallation

The A-side and Z-side locations and the available patch panel ports come from ops.lookups(). The status of an order is read from order history with product type CROSS_CONNECT. Put your change number in customerReferenceId, so that a duplicate order is visible there.

Cross connects as resources Beta#

Java
import com.eqixiac.equinix.fabric.beta.client.FabricBeta;
import com.eqixiac.equinix.fabric.beta.model.CrossConnectResponse;
import com.eqixiac.equinix.fabric.model.implementation.filter.FilterPropertyList;
import com.eqixiac.equinix.fabric.model.implementation.filter.FilterType;

FabricBeta beta = fabric.beta();

FilterPropertyList inProject = new FilterPropertyList(FilterType.AND).equals("/project/projectId", projectId);
for (CrossConnectResponse xc : beta.crossConnects().search(inProject)) {
    System.out.println(xc.getUuid() + " " + xc.getName() + " " + xc.getState() + " circuit " + xc.getCircuitId());
    beta.crossConnects().getSchedules(xc.getUuid());       // install schedules
    beta.crossConnects().getServices(xc.getUuid());
}
MethodReturns
create(CreateCrossConnect), createDiverse(DiverseCrossConnectRequest)The cross connect, or a diverse pair
search(...), getByUuid(uuid)Cross connects
getSchedules(uuid), searchSchedules(...)Install schedules and schedule availability
getServices(uuid), getAttachments(uuid), listNotes(uuid)Services, attachments, notes
performAction(uuid, request), getAction(...), searchActions(uuid)Actions on a cross connect

Digital LOA#

A Digital Letter of Authorization authorises another party to connect to your patch panel port. ops.digitalLoas() is the diloa v1 client.

Java
import com.eqixiac.equinix.operations.model.DigitalLoa;

DigitalLoa loa = ops.digitalLoas().findByUuid("loa-uuid");
System.out.println(loa.getUuid() + " " + loa.getState() + " expires " + loa.getExpiryDateTime());
ops.digitalLoas().listOrganizations("DC6").forEach(org -> System.out.println(org));   // organisations in one IBX
MethodEffect
create(DigitalLoaCreateRequest)Creates an LOA
search(DigitalLoaSearchRequest)Searches LOAs. The typed builder requires a non-empty filter.and, which the live service demands.
findByUuid(uuid), update(uuid, operations), cancel(uuid), performAction(uuid, body)Read, change, cancel, act
findChangesByLoaUuid(uuid), findChangeByUuid(loaUuid, changeUuid)Change history
listOrganizations(ibx)Customer organisations in an IBX

The privateBetaAccess and betaTermsAgreement endpoints of diloa v1 answered 404 on 2026-11-11.

LOAs in the Fabric v4 family Beta#

Java
import com.eqixiac.equinix.fabric.beta.model.LoaResponse;

for (LoaResponse beta2 : fabric.beta().loas().search()) {
    System.out.println(beta2.getUuid() + " " + beta2.getState());
    fabric.beta().loas().getConsumers(beta2.getUuid());
}

fabric.beta().loas() also has create(CreateLoa), update(uuid, patchOperations), performAction(...), searchActions(uuid), getNotes(uuid) and createNote(...).