Exacta Maestro™ GraphQL Schema
This document describes the organization of Exacta Maestro™'s GraphQL API.
Core GraphQL Concepts
GraphQL APIs are organized into hierarchical schemas. The operations and data provided by a schema are described by types
and fields
. Types describe objects in the schema, and fields describe properties of those objects. A field may be a scalar value (string, number, boolean, etc.) or another type.
The root of the schema is labeled with the GraphQL keyword schema
. A schema has one to three fields:
- query: Required. Contains operations which retrieve but do not modify data
- mutation: Optional. Contains operations which modify data.
- subscription: Optional. Not used by Exacta Maestro™.
In GraphQL schema syntax, a schema is defined as
schema {
query: Query
mutation: Mutation
subscription: Subscription
}
In the above example, Query
, Mutation
, and Subscription
are types of the fields query
, mutation
, and subscription
, respectively. The server hosting the schema defines the fields within these root types.
Exacta Maestro™ Fields
Exacta Maestro™'s GraphQL schema adds another layer of organization between the query and mutation types and Exacta Maestro™ operations. Many independent services compose Exacta Maestro™, so the GraphQL schema identifies the service targeted by an operation as a top-level field. For example, AgentHub and TaskAssignment are two Exacta Maestro™ services. Our GraphQL schema is defined as follows:
schema {
query: Query
mutation: Mutation
}
type Query {
agentHubQuery: AgentHubQuery
taskAssigmentQuery: TaskAssignmentQuery
}
type Mutation {
agentHubMutation: AgentHubMutation
taskAssignmentMutation: TaskAssignmentMutation
}
type AgentHubQuery {
getAgents: [Agent]
getAgentTypeByAgentId: AgentType
# Other AgentHub query fields
}
type TaskAssignmentQuery {
task: TaskModel
taskGroup: TaskGroup
# Other Task Assignment query fields
}
type AgentHubMutation {
addAgent: Boolean
# Other AgentHub mutation fields
}
type TaskAssignmentMutation {
createMission: MissionTask
createTaskGroup: TaskGroup
# Other TaskAssignment mutation fields
}
See the API Reference for Exacta Maestro™'s full schema.