schema {
query: RootSchemaQuery
}
"""
Query the contents of Trustfall schemas: their vertex types, properties, edges, etc.
"""
type RootSchemaQuery {
"""
All types of vertices present in this schema.
"""
VertexType: [VertexType!]!
"""
The entry point edges at which querying may begin.
Corresponds to the valid edge names for the `resolve_starting_vertices()`
method for adapters over this schema.
"""
Entrypoint: [Edge!]!
"""
Information about the schema itself.
"""
Schema: Schema!
}
"""
Query the contents of Trustfall schemas: their vertex types, properties, edges, etc.
"""
type Schema {
"""
All types of vertices present in this schema.
"""
vertex_type: [VertexType!]!
"""
The entry point edges at which querying may begin.
Corresponds to the valid edge names for the `resolve_starting_vertices()`
method for adapters over this schema.
"""
entrypoint: [Edge!]!
}
"""
A type of vertex in a schema.
"""
type VertexType {
"""
The name of the vertex type.
"""
name: String!
"""
Documentation associated with this vertex type.
"""
docs: String
"""
True if this vertex is an interface (may have subtypes),
and false otherwise.
"""
is_interface: Boolean!
"""
Supertypes of this vertex type.
"""
implements: [VertexType!]
"""
Subtypes of this vertex type.
If this is not an interface type, this edge is guaranteed to be empty.
"""
implementer: [VertexType!]
"""
Properties available at this vertex type.
Only includes the properties that are explicitly defined in the schema.
Does not include special properties like `__typename` which
are automatically available on every vertex type.
"""
property: [Property!]
"""
Edges to other vertices available at this vertex type.
"""
edge: [Edge!]
}
"""
A vertex property.
"""
type Property {
"""
The name of the property.
"""
name: String!
"""
Documentation associated with this property.
"""
docs: String
"""
The string representation of the property's type.
For example:
- `String` for nullable string
- `Int!` for non-nullable integer
- `[Float!]` for nullable list of non-nullable floats
- `[String!]!` for non-nullable list of non-nullable strings
"""
type: String!
}
"""
A directed edge connecting a vertex type to neighboring vertices.
"""
type Edge {
"""
The name of the edge.
"""
name: String!
"""
Documentation associated with this edge.
"""
docs: String
"""
True if one vertex may have multiple instances of this edge,
otherwise false.
"""
to_many: Boolean!
"""
True if all source vertices are required to have at least one such edge.
"""
at_least_one: Boolean!
"""
The type of the destination vertex of this edge.
"""
target: VertexType!
"""
Parameters this edge takes.
"""
parameter: [EdgeParameter!]
}
"""
A parameter required by an edge.
"""
type EdgeParameter {
"""
The name of the parameter.
"""
name: String!
"""
Documentation associated with this edge.
"""
docs: String
"""
The string representation of the parameter's type.
For example:
- `String` for nullable string
- `Int!` for non-nullable integer
- `[Float!]` for nullable list of non-nullable floats
- `[String!]!` for non-nullable list of non-nullable strings
"""
type: String!
"""
The JSON serialized representation of this parameter's default value, if any.
Nullable parameters have a default value of `null`, which is serialized here as `"null"`.
Schemas may also declare default values explicitly. Non-nullable parameters without a default
value will have a null value in this field.
For example:
- In `edge(x: Int! = 5)`, the default for `x` is JSON serialized here as `"5"`.
- In `edge(x: String! = "abc"), the default for `x` is JSON serialized as `"\"abc\"".
- In `edge(x: [String] = [null, "abc"]), the default for `x` is `"[null,\"abc\"]"`.
"""
default: String
}