Package com.eqixiac.equinix.core.model.multicloud


package com.eqixiac.equinix.core.model.multicloud
Value types for the vocabulary of the Connection Coordinator specification, an open (Apache-2.0) provider-to-provider API for coordinating private connections between two cloud or network providers.

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:

  1. 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.
  2. 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).
  3. The connection reports VERIFICATION_STATE_UNVERIFIED until both providers have finished, then VERIFICATION_STATE_VERIFIED.

The customer-facing operations of steps 1 and 2 are provider-specific; the specification does not name them.

Types

Types and the specification schema each mirrors
TypeSpecification sourcePurpose
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:
  • Class
    Description
    The 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 any ObjectMapper, including one with SerializationFeature.FAIL_ON_EMPTY_BEANS enabled (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 by Connection.adminState and FeatureGuidance.channelAdminState, both output only.
    An immutable, ascending set of discrete connection sizes in Mbps, as published by the specification's Environment.supportedConnectionSizeMbps (and by the Fabric v4 Beta ProviderEnvironment.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 by Environment.environmentVisibility, output only.
    Type of a specification connection (common.yaml#/ConnectionType); carried by Connection.connectionType.
    A provider id from the Connection Coordinator specification: the {provider} segment of the resource name providers/{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 by Feature.provisioningState.
    Verification state of a specification connection (common.yaml#/VerificationState); carried by Connection.verificationState, output only.