Macrometa Graphs API
The Graphs API from Macrometa — 9 operation(s) for graphs.
The Graphs API from Macrometa — 9 operation(s) for graphs.
openapi: 3.0.0
info:
title: Macrometa API Reference Activity Metrics Graphs API
version: 0.17.17
description: API reference for the Macrometa Global Data Network.
license:
name: Macrometa License, Version 2.0
servers:
- url: https://api-play.paas.macrometa.io
description: GDN API
host: api-play.paas.macrometa.io
security:
- ApiKeyAuth: []
- BearerAuth: []
tags:
- name: Graphs
paths:
/_fabric/{fabric}/_api/graph:
get:
description: Lists all graphs stored in this GeoFabric.
operationId: ListAllGraphs
parameters:
- in: path
name: fabric
required: true
description: The name of the fabric.
schema:
type: string
format: string
default: _system
responses:
'200':
description: Successfully fetched graphs.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_list_http_examples_rc_200'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
summary: List all graphs
tags:
- Graphs
post:
description: 'To create a graph, you must name the graph and define its edges.
**Note**: Requires *Administrator* permissions to access the GeoFabric and *Read Only* access on every collection used within this graph.'
operationId: CreateAGraph
parameters:
- in: path
name: fabric
required: true
description: The name of the fabric.
schema:
type: string
format: string
default: _system
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/graph_create_http_examples'
required: true
responses:
'201':
description: Successfully created the graph when *waitForSync* is enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_create_http_examples_rc_201'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'202':
description: Successfully created the graph when *waitForSync* is disabled.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_create_http_examples_rc_202'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'400':
description: Failed due to missing or malformed data. Verify that all parameters are complete.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_400'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'403':
description: Failed to validate because you do not have access to the server.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_403'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'409':
description: Failed to store graph. Verify that a graph with this name does not already exist. Also, verify that the edge definitions are not used with a different signature by another graph.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_409'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
summary: Create a graph
tags:
- Graphs
/_fabric/{fabric}/_api/graph/{graph}:
delete:
description: 'Remove an existing graph object by name. Optionally all collections not used by other graphs can be removed as well.
**Note**: Requires *administrator* permissions.'
operationId: DropAGraph
parameters:
- in: path
name: fabric
required: true
description: The name of the fabric.
schema:
type: string
format: string
default: _system
- description: The name of the graph.
in: path
name: graph
required: true
schema:
type: string
format: string
- description: Remove collections of this graph. Collections are only removed if they are not used in other graphs.
in: query
name: dropCollections
required: false
schema:
type: boolean
default: false
responses:
'201':
description: Successfully removed the graph when *waitForSync* is enabled.
content:
application/json:
schema:
example:
code: 201
error: false
removed: true
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'202':
description: Successfully removed the graph when *waitForSync* is disabled.
content:
application/json:
schema:
example:
code: 202
error: false
removed: true
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'403':
description: Failed to validate because you do not have access to the server.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_403'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'404':
description: Failed to find specified graph.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_404'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
summary: Remove a graph
tags:
- Graphs
get:
description: Fetch information for a graph. Returns the edge definitions and orphan collections.
operationId: GetAGraph
parameters:
- in: path
name: fabric
required: true
description: The name of the fabric.
schema:
type: string
format: string
default: _system
- description: The name of the graph.
in: path
name: graph
required: true
schema:
type: string
format: string
responses:
'200':
description: Successfully fetched the graph data.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_get_http_examples_rc_200'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'404':
description: Failed to find the specified graph.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_404'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
summary: Get a graph
tags:
- Graphs
/_fabric/{fabric}/_api/graph/{graph}/edge:
get:
description: Fetch all edge collections within this graph.
operationId: ListEdgedefinitions
parameters:
- in: path
name: fabric
required: true
description: The name of the fabric.
schema:
type: string
format: string
default: _system
- description: The name of the graph.
in: path
name: graph
required: true
schema:
type: string
format: string
responses:
'200':
description: Successfully fetched edge definitions.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_list_edge_http_examples_rc_200'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'401':
description: Failed because you do not have administrator permissions.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_401'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'403':
description: Failed to validate because you do not have access to the server.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_403'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'404':
description: Failed to find the specified graph.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_404'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
summary: List edge definitions
tags:
- Graphs
post:
description: 'Adds an additional edge definition to the graph.
This edge definition has to contain a *collection* and an array of each *from* and *to* vertex collections. An edge definition can only be added if this definition is either not used in any other graph, or it is used with exactly the same definition. It is not possible to store a definition "e" from "v1" to "v2" in the one graph, and "e" from "v2" to "v1" in the other graph.
**Note**: Requires *administrator* permissions.'
operationId: AddEdgedefinition
parameters:
- in: path
name: fabric
required: true
description: The name of the fabric.
schema:
type: string
format: string
default: _system
- description: The name of the graph.
in: path
name: graph
required: true
schema:
type: string
format: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_definition_add_http_examples'
required: true
responses:
'201':
description: Successfully added edge when *waitForSync* is enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_definition_add_http_examples_rc_201'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'202':
description: Successfully added edge when *waitForSync* is disabled.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_definition_add_http_examples_rc_202'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'400':
description: Failed due to missing, malformed data, or if the definition is used in another graph with a different signature. Verify that all parameters are complete.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_400'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'403':
description: Failed to validate because you do not have access to the server.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_403'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'404':
description: Failed to find the specified graph.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_404'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
summary: Add edge definition
tags:
- Graphs
/_fabric/{fabric}/_api/graph/{graph}/edge/{edgeCollection}:
post:
description: 'Create a new edge in the collection.
**Note:** Requires *Read Only* permissions on the GeoFabric and *Write* access on the collection.'
operationId: CreateAnEdge
parameters:
- in: path
name: fabric
required: true
description: The name of the fabric.
schema:
type: string
format: string
default: _system
- description: The name of the graph.
in: path
name: graph
required: true
schema:
type: string
format: string
- description: The name of the edge collection the edge belongs to.
in: path
name: edgeCollection
required: true
schema:
type: string
format: string
- description: If set to *true*, the response contains the complete new version of the document.
in: query
name: returnNew
required: false
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_create_http_examples'
required: true
responses:
'201':
description: Successfully created the edge when *waitForSync* is enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_create_http_examples_rc_201'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'202':
description: Successfully created the edge when *waitForSync* is disabled.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_create_http_examples_rc_202'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'400':
description: Failed due to missing or malformed data. Verify that all parameters are complete.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_400'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'403':
description: Failed to validate because you do not have access to the server.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_403'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'404':
description: Failed to find graph, edge collection, `_from` or `_to`.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_404'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
summary: Create an edge
tags:
- Graphs
put:
description: 'Change a specified edge definition.
This modifies all occurrences of this definition in all graphs known to your GeoFabric.
**Note**: Requires *administrator* permissions.'
operationId: ReplaceAnEdgedefinition
parameters:
- in: path
name: fabric
required: true
description: The name of the fabric.
schema:
type: string
format: string
default: _system
- description: The name of the graph.
in: path
name: graph
required: true
schema:
type: string
format: string
- description: The name of the edge collection the edge belongs to.
in: path
name: edgeCollection
required: true
schema:
type: string
format: string
- description: If set to *true*, also removes the collection. Collection is only removed if it is not used in other graphs.
in: query
name: dropCollections
required: false
schema:
type: boolean
default: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_definition_modify_http_examples'
required: true
responses:
'201':
description: Successfully replaced edge when *waitForSync* is enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_definition_modify_http_examples_rc_201'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'202':
description: Successfully replaced edge when *waitForSync* is disabled.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_definition_modify_http_examples_rc_202'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'400':
description: Failed due to missing or malformed data. Verify that all parameters are complete.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_400'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'403':
description: Failed to validate because you do not have access to the server.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_403'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'404':
description: Failed to find specified graph.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_404'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
summary: Replace an edge definition
tags:
- Graphs
delete:
description: 'Remove one edge definition from the graph. This only removes the edge collection, the vertex collections can still be used in your queries.
**Note**: Requires *administrator* permissions.'
operationId: RemoveAnEdgedefinitionFromTheGraph
parameters:
- in: path
name: fabric
required: true
description: The name of the fabric.
schema:
type: string
format: string
default: _system
- description: The name of the graph.
in: path
name: graph
required: true
schema:
type: string
format: string
- description: The name of the edge collection the edge belongs to.
in: path
name: edgeCollection
required: true
schema:
type: string
format: string
- description: Set *true* to remove the collection. Collection is only removed if it is not used in other graphs.
in: query
name: dropCollections
required: false
schema:
type: boolean
default: false
responses:
'201':
description: Successfully removed edge definition when *waitForSync* is enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_definition_remove_http_examples_rc_201'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'202':
description: Successfully removed edge definition when *waitForSync* is disabled.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_definition_remove_http_examples_rc_202'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'403':
description: Failed to validate because you do not have access to the server.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_403'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'404':
description: Failed to find specified graph or edge definition.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_404'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
summary: Remove an edge definition
tags:
- Graphs
/_fabric/{fabric}/_api/graph/{graph}/edge/{collection}/{edge}:
delete:
description: 'Remove an edge from the collection.
**Note:** Requires *Read Only* permissions on the GeoFabric and *Write* access on the collection.'
operationId: RemoveAnEdge
parameters:
- in: path
name: fabric
required: true
description: The name of the fabric.
schema:
type: string
format: string
default: _system
- description: The name of the graph.
in: path
name: graph
required: true
schema:
type: string
format: string
- description: The name of the edge collection the edge belongs to.
in: path
name: collection
required: true
schema:
type: string
format: string
- description: The *_key* attribute of the edge.
in: path
name: edge
required: true
schema:
type: string
format: string
- description: If set to *true*, the removed document is returned in the response object.
in: query
name: returnOld
required: false
schema:
type: boolean
- description: If the *If-Match* header is given, it must contain exactly one ETag. The document is updated, if it has the same revision as the given ETag. Otherwise a HTTP 412 is returned. As an alternative you can supply the ETag in a query parameter *rev*.
in: header
name: if-match
schema:
type: string
responses:
'200':
description: Successfully removed the edge.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_delete_http_examples_rc_200'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'202':
description: Successfully removed the edge when *waitForSync* is disabled.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edge_delete_http_examples_rc_202'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'403':
description: Failed to validate because you do not have access to the server.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_403'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'404':
description: Failed to find graph, collection, or edge.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_404'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
'412':
description: Failed to remove document due to different version if a *If-Match* header or *rev* attribute is given.
content:
application/json:
schema:
$ref: '#/components/schemas/error_example_rc_412'
headers:
x-gdn-region:
schema:
$ref: '#/components/schemas/headers/x-gdn-region'
x-gdn-requestid:
schema:
$ref: '#/components/schemas/headers/x-gdn-requestid'
summary: Remove an edge
tags:
- Graphs
get:
description: 'Fetch an edge from the given collection.
**Note**: Requires *Read Only* permissions to access the GeoFabric and *Read Only* access on the collection.'
operationId: GetAnEdge
parameters:
- in: path
name: fabric
required: true
description: The name of the fabric.
schema:
type: string
format: string
default: _system
- description: The name of the graph.
in: path
name: graph
required: true
schema:
type: string
format: string
- description: The name of the edge collection the edge belongs to.
in: path
name: collection
required: true
schema:
type: string
format: string
- description: The *_key* attribute of the edge.
in: path
name: edge
required: true
schema:
type: string
format: string
- description: Must contain a revision. If this is set a document is only returned if it has exactly this revision. Also see *if-match* header as an alternative to this.
in: query
name: rev
required: false
schema:
type: string
- description: If the *If-Match* header is given, it must contain exactly one ETag. The document is returned if it does *not* have the same revision as the provided ETag. Otherwise a HTTP 412 is returned. As an alternative you can supply the ETag in a query parameter *rev*.
in: header
name: if-match
schema:
type: string
- description: If the *If-None-Match* header is given, it must contain exactly one ETag. The document is returned if it does *not* have the same revision as the provided ETag. Otherwise a HTTP 304 is returned.
in: header
name: if-none-match
schema:
type: string
responses:
'200':
description: Successfully fetched edge.
content:
application/json:
schema:
$ref: '#/components/schemas/graph_edg
# --- truncated at 32 KB (106 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/macrometa/refs/heads/main/openapi/macrometa-graphs-api-openapi.yml