Skip to main content
Pulumi logo Pulumi logo
  1. Docs
  2. Reference
  3. REST API Docs
  4. Schema
  5. GraphSchemaResponse

GraphSchemaResponse

    Introspection of the graph query surface: the node types, edge types, queryable fields, and engine limits available to selectors. Prefer reading it at startup over hardcoding the vocabulary.

    Properties

    • schemaVersion string required
      The dated revision of the graph contract this response describes, for example ‘2026-07-29’.
    • nodeTypes array[GraphSchemaNodeType] required
      The selectable node types.
    • name enum required
      The node type name, usable as anchor.nodeType.
      Values: resource, stack
    • selectableFields array[string] required
      Field names usable in anchor match.fields predicates for this node type. This is the widest of the three vocabularies.
    • projectableFields array[string] required
      Field names usable in return.fields projections, and — for node types that carry a document — in a traverse step’s target.match. Naming a field outside this list returns a 400.
    • groupByFields array[string] required
      Field names usable in aggregate.groupBy for this node type. Naming a field outside this list returns a 400. Empty for node types that cannot be aggregated.
    • identity string required
      How a node of this type is identified in a response and how a selector names one. For stacks the two spellings differ, and the field lists cannot say so: they name fields, never formats.
    • fieldValues map[string]array required
      For the subset of selectableFields whose values are a fixed, closed set defined in code, the values themselves, keyed by field name. Absence from this map means no fixed set is advertised, not that the field has none; where such a field also appears in groupByFields, aggregate on it to discover its values.
    • edgeTypes array[GraphSchemaEdgeType] required
      The traversable edge types.
    • name string required
      The edge type name, usable in traverse[].edgeTypes.
    • from enum required
      The node type at the edge’s source.
      Values: resource, stack
    • to enum required
      The node type at the edge’s destination.
      Values: resource, stack
    • asserts string required
      What the presence of this edge asserts about the two nodes it connects, and which end is which.
    • singleHop boolean required
      Whether this edge type is walked in exactly one hop. A traverse step naming one must leave depth unset or set depth.max to 1.
    • directions array[string] required
      The traversal directions this edge type can be walked in, listed in the order ‘in’, ‘out’, ‘both’. A traverse step naming a direction absent from this list is rejected.
    • basis enum required
      How edges of this type are produced.
      Values: declared, inferred
    • metricOps array[string] required
      The aggregate metric operations usable in aggregate.metrics[].op. A selector naming an operation absent from this list is rejected rather than answered with a differently-computed metric.
    • limits GraphSchemaLimits required
      Engine limits applied to every query.
    • maxDepth integer required
      Maximum traversal depth per step. A selector limit: a step whose depth.max exceeds it is rejected.
    • maxTraverseSteps integer required
      Maximum number of traversal steps per query. A selector limit: a query with more steps is rejected.
    • maxScopeAccounts integer required
      Maximum number of cloud accounts scope.accounts may list. A selector limit: a longer list is rejected.
    • maxScopeStacks integer required
      Maximum number of stacks scope.stacks may list. A selector limit: a longer list is rejected.
    • maxGroupByFields integer required
      Maximum number of fields aggregate.groupBy may name. A selector limit: naming more is rejected.
    • maxAnchorNodes integer required
      Maximum number of anchor nodes one query resolves, and the upper bound on anchor.limit. When more nodes match, the result is clipped and reported as truncated - except under a selector that also traverses, where an engine-imposed clip is rejected instead. Also a selector limit: a match.fields[…].in list longer than this is rejected.
    • maxFanout integer required
      Maximum new nodes discovered per traversal level. A result limit.
    • maxNodes integer required
      Maximum total nodes held by one query evaluation. A result limit.
    • maxPaths integer required
      Maximum evidence paths returned. A result limit.
    • maxRecordedCrossings integer required
      Maximum number of edge crossings a traversal step records while walking. A result that reaches this bound is returned with resultMode ’truncated’ rather than rejected.
    • maxPageSize integer required
      Maximum page size. Applied silently rather than as a rejection or a truncation: a page.pageSize above this value is reduced to it.

      The infrastructure as code platform for any cloud.