Class MulticloudEnvironment

java.lang.Object
com.eqixiac.equinix.design.optimizer.model.MulticloudEnvironment

public class MulticloudEnvironment extends Object
One native provider-to-provider multicloud environment: a pair of cloud regions that two providers interconnect directly, with no Equinix resource on the path, together with the availability status observed for it, the source of that observation and the observation date.

Beta: models offerings that reached general availability in 2026 (AWS Interconnect - multicloud, Google Cloud Partner Cross-Cloud Interconnect for AWS, Oracle Interconnect for AWS). Entries are dated observations of provider documentation; see MulticloudEnvironmentCatalog.

Fields
FieldContentConstraint
environmentthe region pair as an EnvironmentRef: two ProviderSites (provider id and the provider's own region name) and the connection sizes in Mbps confirmed for the pairrequired
statusMulticloudEnvironmentStatus null becomes UNVERIFIED
sourceUrlsthe provider pages the entry was read from, primary source firstunmodifiable; may be empty for a caller-supplied entry
asOfthe date the sources were read, ISO-8601 (2026-09-21) null or a valid ISO-8601 date
sizesNotewhat the size list does and does not coveroptional
noteother facts from the source (billing rules, preview limits) optional

Environment id

The providers do not publish the environment ids they agreed on under the Connection Coordinator specification. of(CloudProviderType, String, CloudProviderType, String, MulticloudEnvironmentStatus, BandwidthTier, String, String) therefore assigns a catalog-local id of the form {providerId}-{region}--{providerId}-{region} with the two sides ordered by provider id (aws-us-east-1--gcp-us-east4). It identifies the entry inside a catalog and is not a value either provider's API accepts.

Provider mapping

A CloudProviderType maps to the ProviderRef whose id equals CloudProviderType.shortCode() (aws, azure, gcp, oci, ibm, alibaba). CloudProviderType.OTHER names no provider and is rejected.

  • Method Details

    • of

      public static MulticloudEnvironment of(CloudProviderType a, String aRegion, CloudProviderType z, String zRegion, MulticloudEnvironmentStatus status, BandwidthTier sizesMbps, String sourceUrl, String asOf)
      Creates an entry for a pair of cloud regions, assigning the catalog-local environment id described in the class documentation. The two sides are an unordered pair.
      Parameters:
      a - one cloud
      aRegion - its region in its own notation, for example us-east-1
      z - the other cloud; must differ from a
      zRegion - its region in its own notation, for example us-east4
      status - the observed availability; null becomes UNVERIFIED
      sizesMbps - the connection sizes confirmed for the pair, in Mbps; null becomes BandwidthTier.none()
      sourceUrl - the page the entry was read from; may be null
      asOf - the ISO-8601 date the source was read; may be null
      Returns:
      the entry
      Throws:
      IllegalArgumentException - if a provider is null or OTHER, both providers are the same, a region is blank, or asOf is not an ISO-8601 date
    • catalogId

      public static String catalogId(ProviderSite one, ProviderSite other)
      The catalog-local id for a pair of provider sites, identical for either argument order.
      Parameters:
      one - one provider site
      other - the other provider site
      Returns:
      {providerId}-{region}--{providerId}-{region}, lower-case, sides ordered by provider id
    • connects

      public boolean connects(CloudProviderType a, String aRegion, CloudProviderType z, String zRegion)
      Tests whether this environment joins the two given cloud regions. The endpoints may be given in either order; region names are compared after trimming, ignoring case.
      Parameters:
      a - one cloud
      aRegion - its region
      z - the other cloud
      zRegion - its region
      Returns:
      true when the pair matches; false when any argument is null or a cloud has no provider id
    • joins

      public boolean joins(CloudProviderType a, CloudProviderType z)
      Parameters:
      a - one cloud
      z - another cloud
      Returns:
      true when the two providers of this environment are a and z, in either order
    • regionOf

      public Optional<String> regionOf(CloudProviderType provider)
      Parameters:
      provider - a cloud
      Returns:
      that cloud's region in this environment, or empty when the cloud is not one of the two providers
    • cloudProviders

      public List<Optional<CloudProviderType>> cloudProviders()
      The two clouds of this environment, in the environment's canonical order (by provider id).
      Returns:
      a two-element list; an element is empty when the provider id has no CloudProviderType (for example equinix)
    • sizesMbps

      public BandwidthTier sizesMbps()
      The connection sizes confirmed for this pair, in Mbps.
      Returns:
      the sizes; empty when none was confirmed
    • primarySourceUrl

      public Optional<String> primarySourceUrl()
      Returns:
      the primary source URL, or empty when the entry has none
    • describe

      public String describe()
      A one-line description: both sites, the status and the as-of date, for example aws us-east-1 <-> gcp us-east4 (GA, as of 2026-09-21).
      Returns:
      the description
    • providerRefOf

      public static ProviderRef providerRefOf(CloudProviderType provider)
      Maps a cloud to its specification-style provider id through shortCode().
      Parameters:
      provider - the cloud
      Returns:
      the provider id
      Throws:
      IllegalArgumentException - if provider is null or OTHER
    • cloudProviderOf

      public static Optional<CloudProviderType> cloudProviderOf(ProviderRef ref)
      Parameters:
      ref - a provider id
      Returns:
      the cloud whose shortCode() equals the id; empty for null and for ids with no CloudProviderType constant