# Models

## The MutableFlow object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"MutableFlow":{"type":"object","required":["name","graph","type"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"tenant":{"type":"string"},"graph":{"$ref":"#/components/schemas/FlowGraph"},"type":{"type":"string","description":"Flow type","enum":["ordinary","realtime"]},"cron":{"type":"string","description":"A cron string describing the interval at which this flow is run. If unset, the flow uses webhooks instead"},"owners":{"type":"array","items":{"$ref":"#/components/schemas/Owner"}}}},"FlowGraph":{"type":"object","properties":{"nodes":{"type":"array","description":"An array of all components involved in this flow","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"ID of this node, which will be referenced by edges"},"componentId":{"type":"string","description":"The component repository id of the component (e.g. adapter/transformer) to be used in this step."},"credentials_id":{"type":"string","description":"A secret service id of a secret containing credentials for this node."},"function":{"type":"string","description":"The function that the component will be executing."},"name":{"type":"string","description":"Descriptive name of this node"},"description":{"type":"string"},"fields":{"type":"object","description":"Optional arguments passed on to the component","properties":{}}}}},"edges":{"type":"array","description":"An array of edges linking nodes together, determining the order in which nodes are activated","items":{"type":"object","required":["source","target"],"properties":{"id":{"type":"string"},"config":{"type":"object","properties":{"condition":{"type":"string"},"mapper":{"type":"object","properties":{}}}},"source":{"type":"string","description":"The source node of this edge, referring to the id field of a node"},"target":{"type":"string","description":"The target node of this edge, referring to the id field of a node"}}}}}},"Owner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"External id of the owner"},"type":{"type":"string","description":"Type to discriminate between user or tenant"}}}}}}
```

## The Status object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"Status":{"type":"string","enum":["ACTIVE","PENDING","DISABLED"]}}}}
```

## The MutableFlowTemplate object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"MutableFlowTemplate":{"type":"object","required":["name","graph","type"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"graph":{"$ref":"#/components/schemas/FlowGraph"},"type":{"type":"string","description":"Flow type","enum":["ordinary","realtime"]},"cron":{"type":"string","description":"A cron string describing the interval at which this flow is run. If unset, the flow uses webhooks instead"},"owners":{"type":"array","items":{"$ref":"#/components/schemas/Owner"}}}},"FlowGraph":{"type":"object","properties":{"nodes":{"type":"array","description":"An array of all components involved in this flow","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"ID of this node, which will be referenced by edges"},"componentId":{"type":"string","description":"The component repository id of the component (e.g. adapter/transformer) to be used in this step."},"credentials_id":{"type":"string","description":"A secret service id of a secret containing credentials for this node."},"function":{"type":"string","description":"The function that the component will be executing."},"name":{"type":"string","description":"Descriptive name of this node"},"description":{"type":"string"},"fields":{"type":"object","description":"Optional arguments passed on to the component","properties":{}}}}},"edges":{"type":"array","description":"An array of edges linking nodes together, determining the order in which nodes are activated","items":{"type":"object","required":["source","target"],"properties":{"id":{"type":"string"},"config":{"type":"object","properties":{"condition":{"type":"string"},"mapper":{"type":"object","properties":{}}}},"source":{"type":"string","description":"The source node of this edge, referring to the id field of a node"},"target":{"type":"string","description":"The target node of this edge, referring to the id field of a node"}}}}}},"Owner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"External id of the owner"},"type":{"type":"string","description":"Type to discriminate between user or tenant"}}}}}}
```

## The Flow object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"Flow":{"allOf":[{"$ref":"#/components/schemas/MutableFlow"},{"type":"object","required":["id","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"status":{"type":"string","description":"Flow status, set automatically in response to start/stop commands","enum":["active","inactive","starting","stopping"]},"createdAt":{"type":"string","description":"Timestamp of flow creation","format":"date-time"},"updatedAt":{"type":"string","description":"Timestamp of most recent flow update","format":"date-time"}}}]},"MutableFlow":{"type":"object","required":["name","graph","type"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"tenant":{"type":"string"},"graph":{"$ref":"#/components/schemas/FlowGraph"},"type":{"type":"string","description":"Flow type","enum":["ordinary","realtime"]},"cron":{"type":"string","description":"A cron string describing the interval at which this flow is run. If unset, the flow uses webhooks instead"},"owners":{"type":"array","items":{"$ref":"#/components/schemas/Owner"}}}},"FlowGraph":{"type":"object","properties":{"nodes":{"type":"array","description":"An array of all components involved in this flow","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"ID of this node, which will be referenced by edges"},"componentId":{"type":"string","description":"The component repository id of the component (e.g. adapter/transformer) to be used in this step."},"credentials_id":{"type":"string","description":"A secret service id of a secret containing credentials for this node."},"function":{"type":"string","description":"The function that the component will be executing."},"name":{"type":"string","description":"Descriptive name of this node"},"description":{"type":"string"},"fields":{"type":"object","description":"Optional arguments passed on to the component","properties":{}}}}},"edges":{"type":"array","description":"An array of edges linking nodes together, determining the order in which nodes are activated","items":{"type":"object","required":["source","target"],"properties":{"id":{"type":"string"},"config":{"type":"object","properties":{"condition":{"type":"string"},"mapper":{"type":"object","properties":{}}}},"source":{"type":"string","description":"The source node of this edge, referring to the id field of a node"},"target":{"type":"string","description":"The target node of this edge, referring to the id field of a node"}}}}}},"Owner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"External id of the owner"},"type":{"type":"string","description":"Type to discriminate between user or tenant"}}}}}}
```

## The FlowTemplate object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"FlowTemplate":{"allOf":[{"$ref":"#/components/schemas/MutableFlowTemplate"},{"type":"object","required":["id","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"status":{"type":"string","description":"Flow status, set automatically in response to start/stop commands","enum":["published","draft"]},"tags":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","description":"Timestamp of flow creation","format":"date-time"},"updatedAt":{"type":"string","description":"Timestamp of most recent flow update","format":"date-time"}}}]},"MutableFlowTemplate":{"type":"object","required":["name","graph","type"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"graph":{"$ref":"#/components/schemas/FlowGraph"},"type":{"type":"string","description":"Flow type","enum":["ordinary","realtime"]},"cron":{"type":"string","description":"A cron string describing the interval at which this flow is run. If unset, the flow uses webhooks instead"},"owners":{"type":"array","items":{"$ref":"#/components/schemas/Owner"}}}},"FlowGraph":{"type":"object","properties":{"nodes":{"type":"array","description":"An array of all components involved in this flow","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"ID of this node, which will be referenced by edges"},"componentId":{"type":"string","description":"The component repository id of the component (e.g. adapter/transformer) to be used in this step."},"credentials_id":{"type":"string","description":"A secret service id of a secret containing credentials for this node."},"function":{"type":"string","description":"The function that the component will be executing."},"name":{"type":"string","description":"Descriptive name of this node"},"description":{"type":"string"},"fields":{"type":"object","description":"Optional arguments passed on to the component","properties":{}}}}},"edges":{"type":"array","description":"An array of edges linking nodes together, determining the order in which nodes are activated","items":{"type":"object","required":["source","target"],"properties":{"id":{"type":"string"},"config":{"type":"object","properties":{"condition":{"type":"string"},"mapper":{"type":"object","properties":{}}}},"source":{"type":"string","description":"The source node of this edge, referring to the id field of a node"},"target":{"type":"string","description":"The target node of this edge, referring to the id field of a node"}}}}}},"Owner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"External id of the owner"},"type":{"type":"string","description":"Type to discriminate between user or tenant"}}}}}}
```

## The FlowGraph object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"FlowGraph":{"type":"object","properties":{"nodes":{"type":"array","description":"An array of all components involved in this flow","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"ID of this node, which will be referenced by edges"},"componentId":{"type":"string","description":"The component repository id of the component (e.g. adapter/transformer) to be used in this step."},"credentials_id":{"type":"string","description":"A secret service id of a secret containing credentials for this node."},"function":{"type":"string","description":"The function that the component will be executing."},"name":{"type":"string","description":"Descriptive name of this node"},"description":{"type":"string"},"fields":{"type":"object","description":"Optional arguments passed on to the component","properties":{}}}}},"edges":{"type":"array","description":"An array of edges linking nodes together, determining the order in which nodes are activated","items":{"type":"object","required":["source","target"],"properties":{"id":{"type":"string"},"config":{"type":"object","properties":{"condition":{"type":"string"},"mapper":{"type":"object","properties":{}}}},"source":{"type":"string","description":"The source node of this edge, referring to the id field of a node"},"target":{"type":"string","description":"The target node of this edge, referring to the id field of a node"}}}}}}}}}
```

## The Permissions object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"Permissions":{"type":"string","enum":["all","iam.tenant.create","iam.tenant.read","iam.tenant.update","iam.tenant.delete","iam.secret.create","iam.secret.read","iam.key.create","iam.key.read","iam.key.delete","iam.account.create","iam.account.read","iam.account.update","iam.account.delete","iam.token.create","iam.token.update","iam.token.delete","iam.token.introspect","tenant.all","tenant.membership.create","tenant.membership.update","tenant.membership.delete","tenant.profile.read","tenant.profile.update","tenant.profile.delete","tenant.roles.read","tenant.roles.create","tenant.roles.update","tenant.roles.delete","tenant.flows.read","tenant.flows.create","tenant.flows.update","tenant.flows.delete"]}}}}
```

## The Meta object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"Meta":{"type":"object","properties":{"page":{"type":"integer","description":"Current page (1-based numbering)"},"perPage":{"type":"integer","description":"Number of objects per page"},"total":{"type":"integer","description":"Total number of objects"},"totalPages":{"type":"integer","description":"Total number of pages"}}}}}}
```

## The Owner object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"Owner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"External id of the owner"},"type":{"type":"string","description":"Type to discriminate between user or tenant"}}}}}}
```

## The Login object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"Login":{"title":"Login data","type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"}},"required":["username","password"]}}}}
```

## The Role object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"Role":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/Permissions"}},"scope":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"isGlobal":{"type":"boolean"},"description":{"type":"string"}}},"Permissions":{"type":"string","enum":["all","iam.tenant.create","iam.tenant.read","iam.tenant.update","iam.tenant.delete","iam.secret.create","iam.secret.read","iam.key.create","iam.key.read","iam.key.delete","iam.account.create","iam.account.read","iam.account.update","iam.account.delete","iam.token.create","iam.token.update","iam.token.delete","iam.token.introspect","tenant.all","tenant.membership.create","tenant.membership.update","tenant.membership.delete","tenant.profile.read","tenant.profile.update","tenant.profile.delete","tenant.roles.read","tenant.roles.create","tenant.roles.update","tenant.roles.delete","tenant.flows.read","tenant.flows.create","tenant.flows.update","tenant.flows.delete"]}}}}
```

## The AccessToken object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"AccessToken":{"title":"Access token object","type":"object","properties":{"token":{"type":"string","description":"Auth token"},"id":{"type":"string","description":"Token id"}}}}}}
```

## The UserObject object

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"components":{"schemas":{"UserObject":{"title":"User information","type":"object","properties":{"id":{"type":"string","description":"User Id"},"username":{"type":"string","description":"Username as an email address"},"firstname":{"type":"string","description":"firstname"},"lastname":{"type":"string","description":"lastname"},"status":{"$ref":"#/components/schemas/Status"},"tenant":{"type":"string"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/Role"}},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/Permissions"}},"confirmed":{"type":"boolean","description":"true, if the confirmation link/email has been triggered"},"img":{"type":"string","description":"url to user image"}},"required":["username","firstname","lastname"]},"Status":{"type":"string","enum":["ACTIVE","PENDING","DISABLED"]},"Role":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/Permissions"}},"scope":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"isGlobal":{"type":"boolean"},"description":{"type":"string"}}},"Permissions":{"type":"string","enum":["all","iam.tenant.create","iam.tenant.read","iam.tenant.update","iam.tenant.delete","iam.secret.create","iam.secret.read","iam.key.create","iam.key.read","iam.key.delete","iam.account.create","iam.account.read","iam.account.update","iam.account.delete","iam.token.create","iam.token.update","iam.token.delete","iam.token.introspect","tenant.all","tenant.membership.create","tenant.membership.update","tenant.membership.delete","tenant.profile.read","tenant.profile.update","tenant.profile.delete","tenant.roles.read","tenant.roles.create","tenant.roles.update","tenant.roles.delete","tenant.flows.read","tenant.flows.create","tenant.flows.update","tenant.flows.delete"]}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://flowmate.gitbook.io/flowmate-documentation/api-reference/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
