Skip to content

Clusters and infrastructure

GraphQL schema reference · API guide · SDKs

Clusters, the marketplace, subscriptions and invites, edge enrollment, nodes, services, and orchestrators.

Types used by more than one domain are on Shared types.

Fetch a single cluster by ID.

cluster(
id: ID!
): Cluster

Returns: Cluster (Cluster)

Arguments

  • id: ID! — The cluster ID.

SDK

OperationSelectsTypeScriptGoPython
GetClusterclusterGetClusterDocumentGetClusterget_cluster
GetClusterNodesConnectioncluster.nodesConnectionGetClusterNodesConnectionDocumentGetClusterNodesConnectionget_cluster_nodes_connection

Deprecated: Use clusterInvitesConnection instead

List invites for a cluster.

clusterInvites(
clusterId: ID!
): [ClusterInvite!]!

Returns: [ClusterInvite!]! (ClusterInvite)

Arguments

  • clusterId: ID!

SDK: none; deprecated fields get no generated operation. Use the replacement the deprecation names, or send a GraphQL document through the SDK’s raw client.

List invites for a cluster (paginated).

clusterInvitesConnection(
page: ConnectionInput
clusterId: ID!
): ClusterInviteConnection!

Returns: ClusterInviteConnection! (ClusterInviteConnection)

Arguments

  • page: ConnectionInput (ConnectionInput) — Pagination options.
  • clusterId: ID! — The cluster ID.

SDK

OperationTypeScriptGoPython
GetClusterInvitesConnectionGetClusterInvitesConnectionDocumentGetClusterInvitesConnectionget_cluster_invites_connection

Deprecated: Use clustersAccessConnection instead

List clusters the tenant has access to.

clustersAccess(
first: Int = 50
after: String
): [ClusterAccess!]

Returns: [ClusterAccess!] (ClusterAccess)

Arguments

  • first: Int (default 50)
  • after: String

SDK: none; deprecated fields get no generated operation. Use the replacement the deprecation names, or send a GraphQL document through the SDK’s raw client.

List clusters the tenant has access to (paginated).

clustersAccessConnection(
page: ConnectionInput
): ClusterAccessConnection!

Returns: ClusterAccessConnection! (ClusterAccessConnection)

Arguments

SDK

OperationTypeScriptGoPython
GetClustersAccessConnectionGetClustersAccessConnectionDocumentGetClustersAccessConnectionget_clusters_access_connection

Deprecated: Use clustersAvailableConnection instead

List available clusters for subscription.

clustersAvailable(
first: Int = 50
after: String
): [AvailableCluster!]

Returns: [AvailableCluster!] (AvailableCluster)

Arguments

  • first: Int (default 50)
  • after: String

SDK: none; deprecated fields get no generated operation. Use the replacement the deprecation names, or send a GraphQL document through the SDK’s raw client.

List available clusters for subscription (paginated).

clustersAvailableConnection(
page: ConnectionInput
): AvailableClusterConnection!

Returns: AvailableClusterConnection! (AvailableClusterConnection)

Arguments

SDK

OperationTypeScriptGoPython
GetClustersAvailableConnectionGetClustersAvailableConnectionDocumentGetClustersAvailableConnectionget_clusters_available_connection

List clusters the tenant has access to.

clustersConnection(
page: ConnectionInput
): ClustersConnection!

Returns: ClustersConnection! (ClustersConnection)

Arguments

SDK

OperationTypeScriptGoPython
GetClustersConnectionGetClustersConnectionDocumentGetClustersConnectionget_clusters_connection

Discover service instances by type.

discoverServicesConnection(
page: ConnectionInput
type: String!
clusterId: String
): ServiceInstancesConnection!

Returns: ServiceInstancesConnection! (ServiceInstancesConnection)

Arguments

  • page: ConnectionInput (ConnectionInput) — Pagination options.
  • type: String! — Service type to discover (e.g., mistserver, foghorn).
  • clusterId: String — Filter by cluster ID.

SDK

OperationTypeScriptGoPython
GetDiscoverServicesConnectionGetDiscoverServicesConnectionDocumentGetDiscoverServicesConnectionget_discover_services_connection

Get details for a specific marketplace cluster.

marketplaceCluster(
clusterId: String!
): MarketplaceCluster

Returns: MarketplaceCluster (MarketplaceCluster)

Arguments

  • clusterId: String! — The cluster ID.

SDK

OperationTypeScriptGoPython
GetMarketplaceClusterGetMarketplaceClusterDocumentGetMarketplaceClusterget_marketplace_cluster

Deprecated: Use marketplaceClustersConnection instead

List clusters available in the marketplace.

marketplaceClusters(
first: Int = 50
after: String
): [MarketplaceCluster!]!

Returns: [MarketplaceCluster!]! (MarketplaceCluster)

Arguments

  • first: Int (default 50)
  • after: String

SDK: none; deprecated fields get no generated operation. Use the replacement the deprecation names, or send a GraphQL document through the SDK’s raw client.

List clusters available in the marketplace (paginated).

marketplaceClustersConnection(
page: ConnectionInput
): MarketplaceClusterConnection!

Returns: MarketplaceClusterConnection! (MarketplaceClusterConnection)

Arguments

SDK

OperationTypeScriptGoPython
GetMarketplaceClustersConnectionGetMarketplaceClustersConnectionDocumentGetMarketplaceClustersConnectionget_marketplace_clusters_connection

Deprecated: Use myClusterInvitesConnection instead

List cluster invites sent to the current tenant.

myClusterInvites: [ClusterInvite!]!

Returns: [ClusterInvite!]! (ClusterInvite)

SDK: none; deprecated fields get no generated operation. Use the replacement the deprecation names, or send a GraphQL document through the SDK’s raw client.

List cluster invites sent to the current tenant (paginated).

myClusterInvitesConnection(
page: ConnectionInput
): ClusterInviteConnection!

Returns: ClusterInviteConnection! (ClusterInviteConnection)

Arguments

SDK

OperationTypeScriptGoPython
GetMyClusterInvitesConnectionGetMyClusterInvitesConnectionDocumentGetMyClusterInvitesConnectionget_my_cluster_invites_connection

Deprecated: Use mySubscriptionsConnection instead

List clusters the tenant is subscribed to.

mySubscriptions(
first: Int = 50
after: String
): [Cluster!]!

Returns: [Cluster!]! (Cluster)

Arguments

  • first: Int (default 50)
  • after: String

SDK: none; deprecated fields get no generated operation. Use the replacement the deprecation names, or send a GraphQL document through the SDK’s raw client.

List clusters the tenant is subscribed to (paginated).

mySubscriptionsConnection(
page: ConnectionInput
): MySubscriptionsConnection!

Returns: MySubscriptionsConnection! (MySubscriptionsConnection)

Arguments

SDK

OperationTypeScriptGoPython
GetMySubscriptionsConnectionGetMySubscriptionsConnectionDocumentGetMySubscriptionsConnectionget_my_subscriptions_connection

List nodes (edge servers) with optional filters.

nodesConnection(
page: ConnectionInput
clusterId: String
status: NodeStatus
type: String
): NodesConnection!

Returns: NodesConnection! (NodesConnection)

Arguments

  • page: ConnectionInput (ConnectionInput) — Pagination options.
  • clusterId: String — Filter by cluster ID.
  • status: NodeStatus (NodeStatus) — Filter by node status.
  • type: String — Filter by node type.

SDK

OperationTypeScriptGoPython
GetNodesConnectionGetNodesConnectionDocumentGetNodesConnectionget_nodes_connection

Fetch a public orchestrator with every known instance and per-(gateway, instance) vantage. Side-panel data source for the federation map.

orchestrator(
orchAddr: String!
): OrchestratorWithDetails

Returns: OrchestratorWithDetails (OrchestratorWithDetails)

Arguments

  • orchAddr: String! — The orchestrator’s eth address (hex).

SDK

OperationTypeScriptGoPython
GetOrchestratorGetOrchestratorDocumentGetOrchestratorget_orchestrator

List public per-instance rows. Each carries its own price/capabilities/hardware — usually consistent across an orch’s pool but not guaranteed. Use the optional orchAddr filter to scope to one orch.

orchestratorInstances(
orchAddr: String
): [OrchestratorInstance!]!

Returns: [OrchestratorInstance!]! (OrchestratorInstance)

Arguments

  • orchAddr: String

SDK

OperationTypeScriptGoPython
GetOrchestratorInstancesGetOrchestratorInstancesDocumentGetOrchestratorInstancesget_orchestrator_instances

Time-series performance points for an orchestrator from the discovery rollups (5m or 1h). meanLatencyMs is server-pre-computed; callers don’t divide latency_sum/latency_count themselves.

orchestratorPerformanceSeries(
orchAddr: String!
timeRange: TimeRangeInput!
interval: String
gatewayId: String
resolvedIp: String
): [OrchestratorPerformancePoint!]!

Returns: [OrchestratorPerformancePoint!]! (OrchestratorPerformancePoint)

Arguments

  • orchAddr: String!
  • timeRange: TimeRangeInput! (TimeRangeInput)
  • interval: String — Rollup interval. “5m” (default) or “1h”.
  • gatewayId: String — Optional drill-down filters.
  • resolvedIp: String

SDK

OperationTypeScriptGoPython
GetOrchestratorPerformanceSeriesGetOrchestratorPerformanceSeriesDocumentGetOrchestratorPerformanceSeriesget_orchestrator_performance_series

List per-(gateway, instance) vantage observations. Multi-region observation surfaces here as multiple rows. Use the optional orchAddr filter to scope to one orchestrator.

orchestratorVantages(
orchAddr: String
): [OrchestratorVantage!]!

Returns: [OrchestratorVantage!]! (OrchestratorVantage)

Arguments

  • orchAddr: String

SDK

OperationTypeScriptGoPython
GetOrchestratorVantagesGetOrchestratorVantagesDocumentGetOrchestratorVantagesget_orchestrator_vantages

List orchestrators discovered by Livepeer gateways under this cluster owner tenant. Federation-map data source. Vantage-independent; the per-region table comes from orchestratorVantages.

orchestratorsConnection(
page: ConnectionInput
orchAddr: String
): OrchestratorsConnection!

Returns: OrchestratorsConnection! (OrchestratorsConnection)

Arguments

  • page: ConnectionInput (ConnectionInput) — Pagination options.
  • orchAddr: String — Optional filter to a single orchestrator (eth address).

SDK

OperationTypeScriptGoPython
GetOrchestratorsConnectionGetOrchestratorsConnectionDocumentGetOrchestratorsConnectionget_orchestrators_connection

Deprecated: Use pendingSubscriptionsConnection instead

List pending subscription requests for a cluster.

pendingSubscriptions(
clusterId: ID!
): [ClusterSubscription!]!

Returns: [ClusterSubscription!]! (ClusterSubscription)

Arguments

  • clusterId: ID!

SDK: none; deprecated fields get no generated operation. Use the replacement the deprecation names, or send a GraphQL document through the SDK’s raw client.

List pending subscription requests (paginated).

pendingSubscriptionsConnection(
page: ConnectionInput
clusterId: ID!
): ClusterSubscriptionConnection!

Returns: ClusterSubscriptionConnection! (ClusterSubscriptionConnection)

Arguments

  • page: ConnectionInput (ConnectionInput) — Pagination options.
  • clusterId: ID! — The cluster ID.

SDK

OperationTypeScriptGoPython
GetPendingSubscriptionsConnectionGetPendingSubscriptionsConnectionDocumentGetPendingSubscriptionsConnectionget_pending_subscriptions_connection

Check health status of service instances for owned infrastructure.

serviceInstancesHealth(
serviceId: String
): [ServiceInstanceHealth!]

Returns: [ServiceInstanceHealth!] (ServiceInstanceHealth)

Arguments

  • serviceId: String — Filter by service ID.

SDK

OperationTypeScriptGoPython
GetServiceInstancesHealthGetServiceInstancesHealthDocumentGetServiceInstancesHealthget_service_instances_health

Accept a cluster invite.

acceptClusterInvite(
inviteToken: String!
): ClusterSubscriptionResult!

Returns: ClusterSubscriptionResult! (ClusterSubscriptionResult)

Arguments

  • inviteToken: String! — The invite token.

SDK

OperationTypeScriptGoPython
AcceptClusterInviteAcceptClusterInviteDocumentAcceptClusterInviteaccept_cluster_invite

Acknowledge an incident. The incident stays open until its alerts resolve or someone resolves it.

acknowledgeIncident(
id: ID!
): IncidentMutationResult!

Returns: IncidentMutationResult! (IncidentMutationResult)

Arguments

  • id: ID!

SDK

OperationTypeScriptGoPython
AcknowledgeIncidentAcknowledgeIncidentDocumentAcknowledgeIncidentacknowledge_incident

Approve a pending cluster subscription request.

approveClusterSubscription(
subscriptionId: ID!
): ClusterSubscriptionResult!

Returns: ClusterSubscriptionResult! (ClusterSubscriptionResult)

Arguments

  • subscriptionId: ID! — The subscription ID to approve.

SDK

OperationTypeScriptGoPython
ApproveClusterSubscriptionApproveClusterSubscriptionDocumentApproveClusterSubscriptionapprove_cluster_subscription

Bootstrap a new edge using only an opaque bootstrap token. Public — the bootstrap token is itself the credential. Bridge resolves the token’s cluster via Quartermaster, finds the cluster’s assigned Foghorn, and proxies a PreRegisterEdge call so the operator never has to know cluster topology.

bootstrapEdge(
input: BootstrapEdgeInput!
): BootstrapEdgeResult!

Returns: BootstrapEdgeResult! (BootstrapEdgeResult)

Arguments

SDK

OperationTypeScriptGoPython
BootstrapEdgeBootstrapEdgeDocumentBootstrapEdgebootstrap_edge

Create an invite for a cluster.

createClusterInvite(
input: CreateClusterInviteInput!
): CreateClusterInviteResult!

Returns: CreateClusterInviteResult! (CreateClusterInviteResult)

Arguments

SDK

OperationTypeScriptGoPython
CreateClusterInviteCreateClusterInviteDocumentCreateClusterInvitecreate_cluster_invite

Create an edge cluster with automatic Foghorn assignment and enrollment token.

createEdgeCluster(
input: CreateEdgeClusterInput!
): CreateEdgeClusterResult!

Returns: CreateEdgeClusterResult! (CreateEdgeClusterResult)

Arguments

SDK

OperationTypeScriptGoPython
CreateEdgeClusterCreateEdgeClusterDocumentCreateEdgeClustercreate_edge_cluster

Create an enrollment token for an existing cluster. Requires active subscription to the cluster.

createEnrollmentToken(
clusterId: ID!
name: String
ttl: String
): CreateEnrollmentTokenResult!

Returns: CreateEnrollmentTokenResult! (CreateEnrollmentTokenResult)

Arguments

  • clusterId: ID! — Cluster to create the token for.
  • name: String — Token display name.
  • ttl: String — Time-to-live (e.g. “24h”, “7d”). Defaults to 30 days.

SDK

OperationTypeScriptGoPython
CreateEnrollmentTokenCreateEnrollmentTokenDocumentCreateEnrollmentTokencreate_enrollment_token

Open the MistServer admin UI on a specific edge node. Returns a short-TTL session token plus the per-edge POST URL the webapp must submit the token to (NOT a query parameter, so the token doesn’t leak via referrers / URL history / access logs). On success the browser sets a fw_mist_admin cookie scoped to /_mist and is redirected to /_mist/. Authority is infrastructure ownership, not subscriber access: Mist admin access is effectively shell on the edge box, so only owner/admin users in the cluster owner tenant can open it. Holders of the platform_operator grant are allowed as break-glass. Anything else returns AuthError without exposing whether the node exists.

openMistAdminSession(
input: OpenMistAdminSessionInput!
): OpenMistAdminSessionResult!

Returns: OpenMistAdminSessionResult! (OpenMistAdminSessionResult)

Arguments

SDK

OperationTypeScriptGoPython
OpenMistAdminSessionOpenMistAdminSessionDocumentOpenMistAdminSessionopen_mist_admin_session

Reject a pending cluster subscription request.

rejectClusterSubscription(
subscriptionId: ID!
reason: String
): ClusterSubscriptionResult!

Returns: ClusterSubscriptionResult! (ClusterSubscriptionResult)

Arguments

  • subscriptionId: ID! — The subscription ID to reject.
  • reason: String — Optional rejection reason.

SDK

OperationTypeScriptGoPython
RejectClusterSubscriptionRejectClusterSubscriptionDocumentRejectClusterSubscriptionreject_cluster_subscription

Request to subscribe to a cluster.

requestClusterSubscription(
clusterId: ID!
inviteToken: String
): ClusterSubscriptionResult!

Returns: ClusterSubscriptionResult! (ClusterSubscriptionResult)

Arguments

  • clusterId: ID! — The cluster ID.
  • inviteToken: String — Optional invite token.

SDK

OperationTypeScriptGoPython
RequestClusterSubscriptionRequestClusterSubscriptionDocumentRequestClusterSubscriptionrequest_cluster_subscription

Revoke a cluster invite.

revokeClusterInvite(
inviteId: ID!
): RevokeClusterInviteResult!

Returns: RevokeClusterInviteResult! (RevokeClusterInviteResult)

Arguments

  • inviteId: ID! — The invite ID to revoke.

SDK

OperationTypeScriptGoPython
RevokeClusterInviteRevokeClusterInviteDocumentRevokeClusterInviterevoke_cluster_invite

Set a node’s operational mode. Drains/maintenance bleed traffic away from the node; restoring with NORMAL re-admits it to routing. Reason is recorded in Foghorn’s audit trail.

setNodeMode(
input: SetNodeModeInput!
): SetNodeModeResult!

Returns: SetNodeModeResult! (SetNodeModeResult)

Arguments

SDK

OperationTypeScriptGoPython
SetNodeModeSetNodeModeDocumentSetNodeModeset_node_mode

Set the tenant’s preferred cluster. Must be a subscribed cluster. Used by routing services when choosing tenant-preferred infrastructure.

setPreferredCluster(
clusterId: ID!
): SetPreferredClusterResult!

Returns: SetPreferredClusterResult! (SetPreferredClusterResult)

Arguments

  • clusterId: ID! — The cluster ID to set as preferred.

SDK

OperationTypeScriptGoPython
SetPreferredClusterSetPreferredClusterDocumentSetPreferredClusterset_preferred_cluster

Subscribe to a cluster for streaming access.

subscribeToCluster(
clusterId: ID!
): Boolean!

Returns: Boolean!

Arguments

  • clusterId: ID! — The cluster ID to subscribe to.

SDK

OperationTypeScriptGoPython
SubscribeToClusterSubscribeToClusterDocumentSubscribeToClustersubscribe_to_cluster

Unsubscribe from a cluster.

unsubscribeFromCluster(
clusterId: ID!
): Boolean!

Returns: Boolean!

Arguments

  • clusterId: ID! — The cluster ID to unsubscribe from.

SDK

OperationTypeScriptGoPython
UnsubscribeFromClusterUnsubscribeFromClusterDocumentUnsubscribeFromClusterunsubscribe_from_cluster

Update marketplace settings for a cluster.

updateClusterMarketplace(
clusterId: ID!
input: UpdateClusterMarketplaceInput!
): UpdateClusterResult!

Returns: UpdateClusterResult! (UpdateClusterResult)

Arguments

SDK

OperationTypeScriptGoPython
UpdateClusterMarketplaceUpdateClusterMarketplaceDocumentUpdateClusterMarketplaceupdate_cluster_marketplace