Package com.eqixiac.equinix.core.model.multicloud
Beta. Every type in this package is derived from the specification source at
github.com/aws/Interconnect, commit bbfc763 (2026-09-18), directory
connection-coordinator/schemas. The specification is still changing: the versioned
activation key and the connection-type enum were added in the 15 commits before that one. Field
names, enum values and the key format in this package can change in a minor SDK release to
follow it. Nothing here is derived from a published Equinix API.
Scope
The specification is spoken between two providers. Its resource hierarchy is
providers/{provider}/environments/{environment}/interconnects/{interconnect} with
channels, connections and features beneath. Interconnects, channels, MACsec keys, features and
feature guidance are provider-internal; the specification states that the customer does not
choose or see them. This package does not model them, contains no HTTP client and calls no
endpoint.
The customer-visible part is small, and it is what this package types:
- At provider A the customer selects an environment (a pair of provider sites), a connection size in Mbps and the account id it uses at provider B. Provider A returns an activation key.
- The customer carries the activation key to provider B out of band and enters it there.
Provider B reads the key, then confirms it with provider A
(
ConfirmActivationKey, provider-to-provider). - The connection reports
VERIFICATION_STATE_UNVERIFIEDuntil both providers have finished, thenVERIFICATION_STATE_VERIFIED.
The customer-facing operations of steps 1 and 2 are provider-specific; the specification does not name them.
Types
| Type | Specification source | Purpose |
|---|---|---|
ProviderRef |
provider.yaml#/Provider.name |
Normalized provider id; resourceName() is providers/{id} |
ProviderSite |
environment.yaml#/ProviderSites |
A provider, its site name and a display name |
EnvironmentRef |
environment.yaml#/Environment |
Unordered pair of provider sites, agreed environment id, supported sizes, visibility |
BandwidthTier |
Environment.supportedConnectionSizeMbps |
Ascending set of sizes in Mbps; coveringTier(int) rounds a request up to the
next published size |
ActivationKey |
environment.yaml#/ActivationKey, #/ActivationKeyV1,
#/ActivationKeyV2 |
Base64 JSON key codec; sealed over V1, V2Encrypted,
Opaque |
AdminState,
VerificationState,
ProvisioningState,
MulticloudConnectionType |
common.yaml |
Wire enums; constant names equal wire values; UNKNOWN read-side fallback |
EnvironmentVisibility |
environment.yaml#/EnvironmentVisibility |
Wire enum; UNKNOWN read-side fallback |
Example
EnvironmentRef env = EnvironmentRef.builder()
.environmentId("aws-gcp-us-east")
.providerSite(ProviderSite.of(ProviderRef.AWS, "us-east-1"))
.providerSite(ProviderSite.of(ProviderRef.GCP, "us-east4"))
.supportedConnectionSizeMbps(BandwidthTier.of(1000, 10000))
.build();
OptionalInt tier = env.getSupportedConnectionSizeMbps().coveringTier(3000); // 10000
ActivationKey key = ActivationKey.decode(keyFromProviderA);
String summary = switch (key) {
case ActivationKey.V1 v1 -> v1.connectionSizeMbps() + " Mbps to " + v1.destinationEnvironmentUri();
case ActivationKey.V2Encrypted v2 -> "encrypted, for " + v2.destinationEnvironmentUri();
case ActivationKey.Opaque opaque -> "format not recognized";
};
boolean sameEnvironment = key.destinationEnvironmentId().map(env.getEnvironmentId()::equals).orElse(false);
String toEnterAtProviderB = key.encode();
Placement and dependencies
The package sits in core so that fabric, the design engines and any
later domain can share one vocabulary. It imports nothing outside core, the JDK, Jackson
and Lombok; a test enforces this. The Fabric enum CloudProviderType bridges to
ProviderRef through
ProviderRef.of(type.shortCode()).
Naming
No type here is named Interconnect. In this SDK and its sources that word already
denotes the specification's provider-internal redundancy group, the Fabric v4 XF_IC
resource, Google's Cloud Interconnect product, the Equinix Metal interconnection and the TCO
engine's private-path archetype. The connection-type enum is
MulticloudConnectionType because fabric.enums.ConnectionType exists.
Accessor style
ProviderSite and EnvironmentRef are Lombok @Value types with
getX() accessors and serialize as JSON objects. ProviderRef and
BandwidthTier wrap one value, use id() / tiersMbps() and serialize as a
JSON string and a JSON array. ActivationKey variants deliberately have no JavaBean
getters, so Jackson does not serialize key material.
- See Also:
-
ClassDescriptionThe activation key of the Connection Coordinator specification (
environment.yaml#/ActivationKey): the token a customer obtains from one provider and enters at the other provider to accept a connection.A key this SDK release cannot interpret.The Jackson serializer of every variant: it writes the empty object{}and nothing else, so no key material reaches JSON produced by anyObjectMapper, including one withSerializationFeature.FAIL_ON_EMPTY_BEANSenabled (the default).A version 1 key: all members in cleartext.Builder for a version 1 key.A version 2 key: the envelope in cleartext, everything else encrypted for the destination environment.Administrative state of a specification resource (common.yaml#/AdminState); carried byConnection.adminStateandFeatureGuidance.channelAdminState, both output only.An immutable, ascending set of discrete connection sizes in Mbps, as published by the specification'sEnvironment.supportedConnectionSizeMbps(and by the Fabric v4 BetaProviderEnvironment.supportedBandwidths).A specification environment seen from the customer side: the pair of provider sites a connection joins, the environment id both providers agreed on, the connection sizes the environment supports and its visibility (environment.yaml#/Environment).Visibility of a specification environment in a provider's customer-facing APIs (environment.yaml#/EnvironmentVisibility); carried byEnvironment.environmentVisibility, output only.Type of a specification connection (common.yaml#/ConnectionType); carried byConnection.connectionType.A provider id from the Connection Coordinator specification: the{provider}segment of the resource nameproviders/{provider}.One side of a specification environment: a provider and that provider's own name for a site (environment.yaml#/ProviderSites:providerId,site,displayName).Provisioning state of a specification feature (common.yaml#/ProvisioningState); carried byFeature.provisioningState.Verification state of a specification connection (common.yaml#/VerificationState); carried byConnection.verificationState, output only.