> For the complete documentation index, see [llms.txt](https://flowmate.gitbook.io/flowmate-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://flowmate.gitbook.io/flowmate-documentation/api-reference/models.md).

# 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"]}}}}
```
