Class Fabric
java.lang.Object
com.eqixiac.equinix.EquinixClient
com.eqixiac.equinix.Fabric
- All Implemented Interfaces:
FabricGateway, Closeable, AutoCloseable
The primary entry point for accessing the Equinix Fabric APIs.
Equinix Fabric provides interconnection services that enable direct, private connectivity between infrastructure and applications. This class offers typed access to all Fabric resources including connections, ports, service tokens, cloud routers, routing protocols, route filters, streams, precision time services, networks, and more.
All resource accessors use lazy initialization - internal clients are created on first access and reused for subsequent calls.
Quick Start
BasicEquinixCredentials credentials = new BasicEquinixCredentials("clientId", "clientSecret");
Fabric fabric = new Fabric(credentials);
// List all connections
PaginatedFilteredList<Connection> connections = fabric.connections().search();
// Create a connection with dry-run validation
Connection validated = fabric.connections()
.define(ConnectionType.EVPL_VC)
.withName("My-Connection")
.withBandwidth(100)
.dryRun()
.create();
// Check Fabric API health
HealthStatus health = fabric.health();
Resource Chaining
// Connection -> Metrics (POST /metrics/search; subject and name are required)
List<Metric> usage = fabric.metrics().forConnection(connectionUuid, startTime, endTime,
"equinix.fabric.connection.bandwidth_tx.usage");
// Cloud Router -> Routing Protocol -> Route Filter chain
PaginatedFilteredList<CloudRouter> routers = fabric.cloudRouters().search();
PaginatedList<RoutingProtocol> protocols = fabric.routingProtocols().list(connectionId);
PaginatedFilteredList<RouteFilter> filters = fabric.routeFilters().search();
- Author:
- ianjones
- See Also:
-
Field Summary
Fields inherited from class EquinixClient
autoLoadMetros, enrichMetroRegistry, equinixClient, peeringDbApiKeyModifier and TypeFieldDescriptionprotected final booleanWhether an explicitEquinixClient.authenticate()should eagerly load the metro catalog.protected final booleanWhether the metro registry should be enriched with per-IBX detail from EIA.protected final EquinixClientprotected final StringThe PeeringDB API key configured viaEquinixConfig.getPeeringDbApiKey(), ornullwhen none was configured. -
Constructor Summary
ConstructorsConstructorDescriptionFabric(EquinixCredentials equinixCredentials) Creates a new Fabric client using the provided credentials.Fabric(EquinixCredentials equinixCredentials, boolean isSandBoxed) Creates a new Fabric client with optional sandbox mode.Fabric(EquinixCredentialsProvider credentialsProvider) Creates a new Fabric client whose credentials are resolved through the given provider.Fabric(EquinixCredentialsProvider credentialsProvider, boolean isSandBoxed) Creates a new Fabric client over a custom credentials provider, with optional sandbox mode.Fabric(EquinixCredentialsProvider credentialsProvider, EquinixConfig config) Creates a new Fabric client over a custom credentials provider with explicitEquinixConfigoptions.Fabric(EquinixCredentials equinixCredentials, EquinixConfig config) Creates a new Fabric client with explicitEquinixConfigoptions (sandbox, retry, metro auto-loading). -
Method Summary
Modifier and TypeMethodDescriptionagents()Returns the client for managing Fabric agents (for example Autonomous Network Operations agents).Returns the client for querying Fabric agent templates.voidPerforms OAuth2 authentication and, when metro auto-loading is enabled (the default - seeEquinixConfig.isAutoLoadMetros()onEquinixConfig), eagerly loads themetroRegistry()so the full metro catalogue (metros, their IBXs, coordinates, region, and inter-metro latencies) is resolved up front rather than lazily on first access.beta()Returns the hub for the Fabric v4 families the spec marks Beta (ASNs, Internet Exchange services, Application Connect, Optical Metro Connects, cross connects, digital LOAs, tag lookup and logos), one typed client per family.Returns the client for accessing Fabric cloud events.Returns the client for managing Fabric Cloud Routers and their associated packages.Returns the client for managing Fabric company profiles and their service-profile / tag attachments.Returns the client for managing Fabric connections (connection metrics:metrics()).deploymentWizard(OptimizationResult optimizationResult) Creates a Deployment Wizard from a completed optimization result.Returns the client for managing Equinix Internet Access (EIA) services.health()Retrieves the current health status of the Equinix Fabric API.ipBlocks()Returns the client for managing Fabric IP blocks (BYOIP / Equinix-owned IPv4 and IPv6 prefixes).Returns the client for managing Fabric marketplace subscriptions.metrics()Returns the client for querying Equinix Fabric metrics.metros()Returns the client for managing Equinix metro locations.networks()Returns the client for managing Fabric networks.Begins a metro optimization session.Begins a Peering Intelligence analysis session, resolving the PeeringDB credential from the client's configuration: theEquinixConfig.peeringDbApiKeyoption if one was set, else thePEERINGDB_API_KEYenvironment variable, else anonymous access.peeringIntelligence(String peeringDbApiKey) Begins a Peering Intelligence analysis session with PeeringDB API key authentication.Returns the client for querying Fabric port packages.ports()Returns the client for managing Fabric ports (port metrics:metrics()).Returns the client for managing Equinix Precision Time services.prices()Returns the client for querying Fabric pricing information.Refreshes themetroRegistry()in place from a fresh Metros API call (re-running EIA enrichment when configured), picking up any metros or IBXes added since it was last loaded.Returns the client for managing individual rules within Fabric route aggregations.Returns the client for managing Fabric route aggregations.Returns the client for managing individual rules within Fabric route filters.Returns the client for managing Fabric route filters.Returns the client for managing routing protocols on Fabric connections.Begins a value-realization savings analysis: how much routing cloud egress over an Equinix private interconnect saves versus the public internet.Returns the client for managing Fabric service profiles.Returns the client for managing Fabric service tokens.Returns the client for managing alert rules attached to Fabric streams.Returns the client for attaching and detaching assets to and from Fabric streams.streams()Returns the client for managing Fabric event streams.Returns the client for managing Fabric stream subscriptions.tags()Returns the client for managing Fabric resource tags.Begins a total-cost-of-ownership comparison across the three deployment archetypes - public cloud over the internet, on-prem, and Equinix- interconnected - for a given egress/bandwidth workload.Methods inherited from class EquinixClient
close, core
-
Constructor Details
-
Fabric
Creates a new Fabric client using the provided credentials. Authentication occurs automatically on the first API call.- Parameters:
equinixCredentials- the OAuth2 credentials for authenticating with Equinix APIs
-
Fabric
Creates a new Fabric client with optional sandbox mode.- Parameters:
equinixCredentials- the OAuth2 credentials for authenticating with Equinix APIsisSandBoxed-trueto use the sandbox environment for testing;falsefor production
-
Fabric
Creates a new Fabric client with explicitEquinixConfigoptions (sandbox, retry, metro auto-loading).- Parameters:
equinixCredentials- the OAuth2 credentials for authenticating with Equinix APIsconfig- the construction-time options
-
Fabric
Creates a new Fabric client whose credentials are resolved through the given provider. Authentication occurs automatically on the first API call.- Parameters:
credentialsProvider- supplies the OAuth2 credentials for authenticating with Equinix APIs
-
Fabric
Creates a new Fabric client over a custom credentials provider, with optional sandbox mode.- Parameters:
credentialsProvider- supplies the OAuth2 credentials for authenticating with Equinix APIsisSandBoxed-trueto use the sandbox environment for testing;falsefor production
-
Fabric
Creates a new Fabric client over a custom credentials provider with explicitEquinixConfigoptions.- Parameters:
credentialsProvider- supplies the OAuth2 credentials for authenticating with Equinix APIsconfig- the construction-time options
-
-
Method Details
-
authenticate
Performs OAuth2 authentication and, when metro auto-loading is enabled (the default - seeEquinixConfig.isAutoLoadMetros()onEquinixConfig), eagerly loads themetroRegistry()so the full metro catalogue (metros, their IBXs, coordinates, region, and inter-metro latencies) is resolved up front rather than lazily on first access. The catalogue load is best-effort: a failure there does not fail authentication, and the registry stays lazily loadable on demand.- Overrides:
authenticatein classEquinixClient- Throws:
EquinixClientException- if authentication itself fails
-
metros
Returns the client for managing Equinix metro locations. Metros represent geographic areas where Equinix data centers are located.- Specified by:
metrosin interfaceFabricGateway- Returns:
- the
Metrosclient for listing and querying available metros
-
metroRegistry
Returns a cached, in-memory registry of every metro the Metros API reports (and the IBX data centers within each), keyed byMetroIdso it covers metros theMetroCodeenum does not list. Loaded lazily on first access frommetros(); callreloadMetroRegistry()to refresh it.When
EquinixConfig.enrichMetroRegistryis enabled, the load also pulls the EIA per-IBX catalogue (the only Equinix API with per-data-center coordinates) over this client's own transport and exposes it viaMetroRegistry.ibx(String)- seeEquinixConfig.isEnrichMetroRegistry().- Returns:
- the metro registry
-
reloadMetroRegistry
Refreshes themetroRegistry()in place from a fresh Metros API call (re-running EIA enrichment when configured), picking up any metros or IBXes added since it was last loaded. Existing references to the registry see the fresh data - this delegates toMetroRegistry.refresh().- Returns:
- the refreshed metro registry
-
serviceTokens
Returns the client for managing Fabric service tokens. Service tokens enable secure, delegated provisioning of connections between parties. Supports dry-run validation via the fluent builder.- Returns:
- the
ServiceTokensclient for creating, listing, and managing service tokens
-
ports
-
connections
Returns the client for managing Fabric connections (connection metrics:metrics()). Connections are the core resource in Fabric, representing virtual circuits between two access points (ports, service profiles, cloud providers, or network endpoints). Supports dry-run validation and fluent builder creation.- Specified by:
connectionsin interfaceFabricGateway- Returns:
- the
Connectionsclient for creating, searching, and managing connections
-
metrics
-
prices
Returns the client for querying Fabric pricing information. Provides access to pricing details for various Fabric connection types and configurations.- Specified by:
pricesin interfaceFabricGateway- Returns:
- the
Pricesclient for searching and filtering pricing data
-
serviceProfiles
Returns the client for managing Fabric service profiles. Service profiles define how third-party providers (such as cloud providers) expose their services for Fabric connections.- Specified by:
serviceProfilesin interfaceFabricGateway- Returns:
- the
ServiceProfilesclient for searching and managing service profiles
-
cloudRouters
Returns the client for managing Fabric Cloud Routers and their associated packages. Cloud Routers enable dynamic routing between Fabric connections using BGP.- Specified by:
cloudRoutersin interfaceFabricGateway- Returns:
- the
CloudRoutersclient for creating, searching, and managing cloud routers
-
routingProtocols
Returns the client for managing routing protocols on Fabric connections. Routing protocols (such as BGP) define how routes are exchanged between connected endpoints through Cloud Routers.- Specified by:
routingProtocolsin interfaceFabricGateway- Returns:
- the
RoutingProtocolsclient for configuring routing protocols on connections
-
routeFilters
Returns the client for managing Fabric route filters. Route filters control which routes are advertised or accepted through routing protocols, enabling fine-grained traffic engineering.- Returns:
- the
RouteFiltersclient for creating, searching, and managing route filters
-
eiaServices
Returns the client for managing Equinix Internet Access (EIA) services. EIA services provide dedicated internet connectivity (single or dual) over Equinix Fabric, with configurable bandwidth, billing, and routing protocol (BGP/DIRECT/STATIC).- Returns:
- the
EiaServicesclient for creating, searching, and managing EIA services
-
routeFilterRules
Returns the client for managing individual rules within Fabric route filters. Each rule specifies a prefix and action (permit/deny) that determines how matching routes are handled.- Returns:
- the
RouteFilterRulesclient for CRUD operations on route filter rules
-
routeAggregations
Returns the client for managing Fabric route aggregations. Route aggregations summarize multiple specific routes into a single aggregated route, reducing the routing table size and simplifying network management.- Returns:
- the
RouteAggregationsclient for creating, searching, and managing route aggregations
-
routeAggregationRules
Returns the client for managing individual rules within Fabric route aggregations. Each rule specifies which prefixes are included in the aggregated route.- Returns:
- the
RouteAggregationRulesclient for CRUD operations on route aggregation rules
-
networks
-
streams
-
streamSubscriptions
Returns the client for managing Fabric stream subscriptions. Stream subscriptions define how events from a stream are delivered to consumers, supporting various delivery mechanisms.- Returns:
- the
StreamSubscriptionsclient for creating and managing stream subscriptions
-
precisionTimes
Returns the client for managing Equinix Precision Time services. Precision Time provides accurate time synchronization (NTP/PTP) for network infrastructure connected through Fabric.- Returns:
- the
PrecisionTimesclient for creating and managing precision time services
-
cloudEvents
Returns the client for accessing Fabric cloud events. Cloud events provide audit and operational event data for Fabric resources.- Returns:
- the
CloudEventsclient for listing and searching cloud events
-
marketplaceSubscriptions
Returns the client for managing Fabric marketplace subscriptions. Marketplace subscriptions represent active subscriptions to services offered through the Equinix Fabric marketplace.- Returns:
- the
MarketplaceSubscriptionsclient for managing marketplace subscriptions
-
ipBlocks
-
portPackages
Returns the client for querying Fabric port packages.- Returns:
- the
PortPackagesclient for listing port packages
-
streamAlertRules
Returns the client for managing alert rules attached to Fabric streams.- Returns:
- the
StreamAlertRulesclient for creating and managing stream alert rules
-
streamAssets
Returns the client for attaching and detaching assets to and from Fabric streams.- Returns:
- the
StreamAssetsclient for managing stream asset attachments
-
agents
-
agentTemplates
Returns the client for querying Fabric agent templates.- Returns:
- the
AgentTemplatesclient for listing agent templates
-
companyProfiles
Returns the client for managing Fabric company profiles and their service-profile / tag attachments.- Returns:
- the
CompanyProfilesclient for creating, searching, and managing company profiles
-
tags
-
beta
Returns the hub for the Fabric v4 families the spec marks Beta (ASNs, Internet Exchange services, Application Connect, Optical Metro Connects, cross connects, digital LOAs, tag lookup and logos), one typed client per family. Beta endpoints may change without notice and need the account to be entitled to them.- Returns:
- the
FabricBetahub
-
optimizeMetros
Begins a metro optimization session. Returns a fluent builder for defining workforce locations, provider requirements, workloads, and constraints, then computes optimal Equinix metro placements with ranked recommendations.OptimizationResult result = fabric.optimizeMetros() .addSite("NYC HQ").nearestMetro(MetroCode.NY).role(SiteRole.HEADQUARTERS).headcount(500).done() .requireProvider(CloudProviderType.AWS).done() .addWorkload("ML Training").type(WorkloadType.AI_ML_TRAINING).bandwidthMbps(10_000).done() .strategy(OptimizationStrategy.BALANCED) .optimize(); System.out.println(result.toMarkdown());- Returns:
- a
MetroOptimizer.Builderfor configuring the optimization request
-
deploymentWizard
Creates a Deployment Wizard from a completed optimization result. The wizard generates an executable deployment plan with Cloud Routers, provider connections, inter-metro backbone links, and routing protocol configurations - all with bandwidth sizing that drives accurate pricing.DeploymentPlan plan = fabric.deploymentWizard(optimizationResult) .routerPackage("STANDARD") .routerNamePrefix("FCR") .backboneBandwidthMbps(10_000) .backboneTopology(BackboneTopology.FULL_MESH) .bandwidthStrategy(BandwidthStrategy.PER_WORKLOAD) .customerAsn(65100L) .withBFD(true, 300) .notifications("noc@example.com") // required: Fabric mandates a recipient on every resource .plan(); System.out.println(plan.toMarkdown()); DeploymentOutcome outcome = plan.execute();- Parameters:
optimizationResult- the completed optimization result to convert into a deployment plan- Returns:
- a
DeploymentWizard.Builderfor configuring the deployment plan
-
peeringIntelligence
Begins a Peering Intelligence analysis session with PeeringDB API key authentication. Returns a fluent builder for specifying target ASNs, customer metro locations, and analysis options, then queries PeeringDB and Equinix Fabric to produce presence matrices, resiliency assessments, and peering opportunity discovery.PeeringIntelligenceResult result = fabric.peeringIntelligence("your-peeringdb-api-key") .addAsn(16509, "AWS") .addAsn(8075, "Microsoft") .addAsn(15169, "Google") .customerMetros(MetroCode.DC, MetroCode.DA, MetroCode.SG) .customerAsn(65100L) .includeResiliency(true) .analyze(); System.out.println(result.presenceMatrix().toTableString()); System.out.println(result.toMarkdown());- Parameters:
peeringDbApiKey- the PeeringDB API key for authenticated access- Returns:
- a
PeeringIntelligence.Builderfor configuring the analysis - See Also:
-
peeringIntelligence
Begins a Peering Intelligence analysis session, resolving the PeeringDB credential from the client's configuration: theEquinixConfig.peeringDbApiKeyoption if one was set, else thePEERINGDB_API_KEYenvironment variable, else anonymous access. Anonymous access is rate-limited by PeeringDB to approximately 20 requests per minute.- Returns:
- a
PeeringIntelligence.Builderfor configuring the analysis - See Also:
-
savingsCalculator
Begins a value-realization savings analysis: how much routing cloud egress over an Equinix private interconnect saves versus the public internet. Equinix interconnect costs default to live Fabric pricing; egress rates come from the supplied rate card (aReferenceRateCardor aCustomRateCard).SavingsEstimate s = fabric.savingsCalculator() .egress(50, DataUnit.TERABYTE) .fromCloud(CloudProviderType.AWS).inRegion("us-east-1") .viaMetro(MetroCode.DC).bandwidthMbps(10_000) .calculate(); System.out.println(s.toMarkdown());- Returns:
- a
SavingsCalculator.Builderfor configuring the analysis
-
tcoComparison
Begins a total-cost-of-ownership comparison across the three deployment archetypes - public cloud over the internet, on-prem, and Equinix- interconnected - for a given egress/bandwidth workload.TcoComparison tco = fabric.tcoComparison() .egress(100, DataUnit.TERABYTE) .fromCloud(CloudProviderType.AWS).inRegion("us-east-1") .viaMetro(MetroCode.DC).bandwidthMbps(10_000) .compare(); System.out.println(tco.toMarkdown());- Returns:
- a
TcoCalculator.Builderfor configuring the comparison
-
health
Retrieves the current health status of the Equinix Fabric API. This is a direct call (not a lazy-initialized client) that returns the current API availability and status information.- Returns:
- the current
HealthStatusof the Fabric API
-