---
title: "Workflow Model"
description: "Discover the robust features of our Workflow Model, including creation, deployment, and management for seamless process automation. (Gitana 4.0)"
product: "Gitana"
version: "4.0"
url: "/documentation/gitana/4.0/reference/types/workflowModel"
---

# <a id="top"></a>Workflow Model

An Object

1.  [Platform](/documentation/gitana/4.0/reference/types/platform.md)
2.  [Workflow Model](/documentation/gitana/4.0/reference/types/workflowModel.md)

##### Table of Contents

- [Overview](#top "Overview")
- [Parent](#parent "Parent")
- [Properties](#properties "Properties")
- [Methods](#methods "Methods")
- [Schema](#schema "Schema")

> **Note:** Drop in one of our language drivers to accelerate your development.  
> Here are links to some of our popular [Cookbooks](/documentation/gitana/4.0/developers/cookbooks/overview.md) to help you get started!
> 
> - [C#](/documentation/gitana/4.0/developers/cookbooks/csharp.md)
> - [Go](/documentation/gitana/4.0/developers/cookbooks/go.md)
> - [Java](/documentation/gitana/4.0/developers/cookbooks/java.md)
> - [JavaScript](/documentation/gitana/4.0/developers/cookbooks/javascript2.md)
> - [PHP](/documentation/gitana/4.0/developers/cookbooks/php.md)
> - [Python](/documentation/gitana/4.0/developers/cookbooks/python.md)
> - [Ruby](/documentation/gitana/4.0/developers/cookbooks/ruby.md)

## <a id="parent"></a>Parent

This Workflow Model is contained within a [Platform](/documentation/gitana/4.0/reference/types/platform.md).

## <a id="properties"></a>Properties

The following properties are available:

| Property | Type | Default | Read-Only | Description |
| --- | --- | --- | --- | --- |
| \_doc | string |  | No | The primary ID |
| \_system | object |  | No | Metadata maintained by the system |
| deployed | boolean |  | No | Indicates whether this workflow model has already been deployed. If the model has already been deployed, it cannot be deleted. |
| emails | object |  | No |  |
| forms | object |  | No |  |
| head | boolean |  | No | Indicates whether this workflow model version is the head version. Only one workflow model version will have head marked as true at a time. |
| id | string |  | No | A textual unique identifier for the workflow |
| nodes | object |  | No | Contains a map of the node definitions for the workflow, keyed by node ID |
| properties | object |  | No |  |
| swimlanes | object |  | No | Contains a map of swimlane definitions and assignments for the workflow, keyed by swimlane ID |
| version | number |  | No | The version of the workflow (long) |

## <a id="methods"></a>Methods

The following methods are available:

- [Check Permission](#post-workflow-models-modelid-permissions-permissionid-check "Check Permission")
- [Check Single Authority](#post-workflow-models-modelid-authorities-authorityid-check "Check Single Authority")
- [Check multiple Authorities](#post-workflow-models-authorities-check "Check multiple Authorities")
- [Check multiple Permissions](#post-workflow-models-permissions-check "Check multiple Permissions")
- [Create Workflow Model](#post-workflow-models "Create Workflow Model")
- [Delete Workflow Model](#delete-workflow-models-modelid-versions-versionid "Delete Workflow Model")
- [Delete Workflow Model](#delete-workflow-models-modelid "Delete Workflow Model")
- [Delete Workflow Model](#post-workflow-models-modelid-delete "Delete Workflow Model")
- [Delete Workflow Model](#post-workflow-models-modelid-versions-versionid-delete "Delete Workflow Model")
- [Deploy Model](#post-workflow-models-modelid-deploy "Deploy Model")
- [Deploy Version](#post-workflow-models-modelid-versions-versionid-deploy "Deploy Version")
- [Export Workflow Model](#post-workflows-model-modelid-export "Export Workflow Model")
- [Grant Authority](#post-workflow-models-modelid-authorities-authorityid-grant "Grant Authority")
- [Import Workflow Model](#post-workflows-modelid-import "Import Workflow Model")
- [List Forms](#get-workflow-models-modelid-forms "List Forms")
- [List Versions](#get-workflow-models-modelid-versions "List Versions")
- [Lists Workflow Model](#get-workflow-models "Lists Workflow Model")
- [Lists Workflow Model](#get-workflow-models-modelid-acl-list "Lists Workflow Model")
- [Queries for Workflow Model](#post-workflow-models-query "Queries for Workflow Model")
- [Query](#post-workflow-models-modelid-versions-query "Query")
- [Read ACL for Principal](#get-workflow-models-modelid-acl "Read ACL for Principal")
- [Read Authorities Report](#post-workflow-models-modelid-authorities "Read Authorities Report")
- [Read Email Node](#get-workflow-models-modelid-nodes-nodeid-email "Read Email Node")
- [Read Form Node](#get-workflow-models-modelid-nodes-nodeid-form "Read Form Node")
- [Read Workflow Model](#get-workflow-models-modelid-versions-versionid "Read Workflow Model")
- [Read Workflow Model](#get-workflow-models-modelid "Read Workflow Model")
- [Revoke Authority](#post-workflow-models-modelid-authorities-authorityid-revoke "Revoke Authority")
- [Undeploy Model](#post-workflow-models-modelid-undeploy "Undeploy Model")
- [Undeploy Version](#post-workflow-models-modelid-versions-versionid-undeploy "Undeploy Version")
- [Update Workflow Model](#put-workflow-models-modelid-versions-versionid "Update Workflow Model")
- [Update Workflow Model](#put-workflow-models-modelid "Update Workflow Model")
- [Update Workflow Model](#post-workflow-models-modelid-versions-versionid-update "Update Workflow Model")
- [Update Workflow Model](#post-workflow-models-modelid-update "Update Workflow Model")
- [Upgrade Instance](#post-workflow-instances-workflowid-upgrade "Upgrade Instance")
- [Upgrade Instances](#post-workflow-instances-upgrade "Upgrade Instances")

### <a id="post-workflow-models-modelid-permissions-permissionid-check"></a>Check Permission

Checks whether one or more authorities against the specified workflowModel are granted for a given set of users

POST /workflow/models/{modelId}/permissions/{permissionId}/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| permissionId | true | string | The ID of the permission |
| id | true | string |  |
| version | false | string |  |

#### Response

```json
{
  "$ref": "#/components/schemas/checkPermission"
}
```

### <a id="post-workflow-models-modelid-authorities-authorityid-check"></a>Check Single Authority

Checks whether a single authority is granted against the specified workflowModel for the given user

POST /workflow/models/{modelId}/authorities/{authorityId}/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| authorityId | true | string | The ID or authority key for the authority |
| id | true | string |  |
| version | false | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Check",
  "extends": "status",
  "properties": {
    "check": {
      "type": "boolean"
    },
    "ok": null
  }
}
```

### <a id="post-workflow-models-authorities-check"></a>Check multiple Authorities

Checks whether one or more authorities against the specified workflowModel are granted for a given set of users

POST /workflow/models/authorities/check

#### Parameters

This function has no parameters.

#### Response

```json
{
  "type": "object",
  "description": "Check Multiple Authorities Out",
  "properties": {
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "permissionedId": {
            "type": "string"
          },
          "principalId": {
            "type": "string"
          },
          "authorityId": {
            "type": "string"
          },
          "result": {
            "type": "boolean"
          }
        }
      }
    }
  }
}
```

### <a id="post-workflow-models-permissions-check"></a>Check multiple Permissions

Checks whether one or more permissions against the specified workflowModel are granted for a given set of users

POST /workflow/models/permissions/check

#### Parameters

This function has no parameters.

#### Response

```json
{
  "type": "object",
  "description": "Check Multiple Permissions Out",
  "properties": {
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "permissionedId": {
            "type": "string"
          },
          "principalId": {
            "type": "string"
          },
          "permissionId": {
            "type": "string"
          },
          "result": {
            "type": "boolean"
          }
        }
      }
    }
  }
}
```

### <a id="post-workflow-models"></a>Create Workflow Model

Creates a new Workflow Model

POST /workflow/models

#### Parameters

This function has no parameters.

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="delete-workflow-models-modelid-versions-versionid"></a>Delete Workflow Model

Deletes an existing Workflow Model

DELETE /workflow/models/{modelId}/versions/{versionId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| versionId | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="delete-workflow-models-modelid"></a>Delete Workflow Model

Deletes an existing Workflow Model

DELETE /workflow/models/{modelId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| version | false | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-workflow-models-modelid-delete"></a>Delete Workflow Model

Deletes an existing Workflow Model

POST /workflow/models/{modelId}/delete

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| version | false | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-workflow-models-modelid-versions-versionid-delete"></a>Delete Workflow Model

Deletes an existing Workflow Model

POST /workflow/models/{modelId}/versions/{versionId}/delete

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| versionId | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-workflow-models-modelid-deploy"></a>Deploy Model

POST /workflow/models/{modelId}/deploy

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| version | true | string |  |

### <a id="post-workflow-models-modelid-versions-versionid-deploy"></a>Deploy Version

POST /workflow/models/{modelId}/versions/{versionId}/deploy

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| versionId | true | string |  |

### <a id="post-workflows-model-modelid-export"></a>Export Workflow Model

Starts an export job for this resource

POST /workflows/model/{modelId}/export

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| version | false | string |  |
| groupId | false | string | The Group ID to be assigned to the exported archive |
| artifactId | false | string | The Artifact ID to be assigned to the exported archive |
| versionId | false | string | The Version ID to be assigned to the exported archive |
| vaultId | false | string | The ID of the vault where the exported archive should be saved |
| schedule | false | string | Whether to run the job immediately or in the background (either 'synchronous' or 'asynchronous') |

#### Response

```json
{
  "type": "object",
  "description": "Export Configuration",
  "properties": {
    "startDate": {
      "type": "object",
      "description": "Only include objects whose modification date is after this time (epoch millis). This is used for partial or rolling exports."
    },
    "endDate": {
      "type": "object",
      "description": "Only include objects whose modification date is before this time (epoch millis). This is used for partial or rolling exports."
    },
    "startChangeset": {
      "type": "string",
      "description": "Only include data that is relevant to changesets at or beyond the specified changeset."
    },
    "endChangeset": {
      "type": "string",
      "description": "Only include data that is relevant to changesets at or before the specified changeset."
    },
    "includeACLs": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include ACLs during export."
    },
    "includeTeams": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Teams during export."
    },
    "includeActivities": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Activities during export."
    },
    "includeBinaries": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Binaries for data stores during export."
    },
    "includeAttachments": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Attachments for Attachables during export."
    },
    "artifactDependencies": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "artifactIncludes": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "forceIncludes": {
      "type": "boolean"
    }
  }
}
```

### <a id="post-workflow-models-modelid-authorities-authorityid-grant"></a>Grant Authority

Grants an authority against the specified workflowModel to a given user

POST /workflow/models/{modelId}/authorities/{authorityId}/grant

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| authorityId | true | string | The ID or authority key for the authority |
| id | true | string |  |
| version | false | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-workflows-modelid-import"></a>Import Workflow Model

Starts an import job for this resource

POST /workflows/{modelId}/import

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| version | false | string |  |
| groupId | false | string | The Group ID to be assigned to the exported archive |
| artifactId | false | string | The Artifact ID to be assigned to the exported archive |
| versionId | false | string | The Version ID to be assigned to the exported archive |
| vaultId | false | string | The ID of the vault where the exported archive should be saved |
| schedule | false | string | Whether to run the job immediately or in the background (either 'synchronous' or 'asynchronous') |

#### Response

```json
{
  "type": "object",
  "description": "Import Configuration",
  "properties": {
    "includeACLs": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include ACLs during import."
    },
    "includeTeams": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Teams during import."
    },
    "includeActivities": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Activities during import."
    },
    "includeBinaries": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Binaries for data stores during import."
    },
    "includeAttachments": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Attachments for Attachables during import."
    },
    "strategy": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": "CLONE",
      "description": "Either CLONE or COPY_EVERYTHING. Use CLONE to keep the same IDs on import. Use COPY_EVERYTHING to generate all new IDs for all entries on every import."
    },
    "substitutions": {
      "type": "string"
    }
  }
}
```

### <a id="get-workflow-models-modelid-forms"></a>List Forms

GET /workflow/models/{modelId}/forms

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |

### <a id="get-workflow-models-modelid-versions"></a>List Versions

GET /workflow/models/{modelId}/versions

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |

### <a id="get-workflow-models"></a>Lists Workflow Model

Retrieves a list of Workflow Model instances

GET /workflow/models

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| all | false | string |  |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/resultmap_workflowModel"
      }
    }
  }
}
```

### <a id="get-workflow-models-modelid-acl-list"></a>Lists Workflow Model

Retrieves a list of Workflow Model instances

GET /workflow/models/{modelId}/acl/list

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| version | false | string |  |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/resultmap_workflowModel"
      }
    }
  }
}
```

### <a id="post-workflow-models-query"></a>Queries for Workflow Model

Queries for instances of type Workflow Model

POST /workflow/models/query

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| all | false | string |  |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/resultmap_workflowModel"
      }
    }
  }
}
```

### <a id="post-workflow-models-modelid-versions-query"></a>Query

Queries for items of type workflowModel

POST /workflow/models/{modelId}/versions/query

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  }
}
```

### <a id="get-workflow-models-modelid-acl"></a>Read ACL for Principal

Reads the ACL for a workflow model and specific actor

GET /workflow/models/{modelId}/acl

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| id | true | string |  |
| version | false | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Result Map of Authority Keys",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Authority Key"
      }
    }
  }
}
```

### <a id="post-workflow-models-modelid-authorities"></a>Read Authorities Report

Read the Authorities Report for the specified workflowModel

POST /workflow/models/{modelId}/authorities

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| version | false | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Authority Report",
  "properties": {
    "principalId": {
      "type": "object",
      "properties": {
        "id": {
          "type": "object",
          "properties": {
            "role-key": {
              "type": "string"
            },
            "principal": {
              "type": "string"
            },
            "permissioned": {
              "type": "string"
            },
            "inheritsFrom": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "principal": {
                  "type": "string"
                },
                "permissioned": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
```

### <a id="get-workflow-models-modelid-nodes-nodeid-email"></a>Read Email Node

GET /workflow/models/{modelId}/nodes/{nodeId}/email

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| nodeId | true | string | The ID of the node |

### <a id="get-workflow-models-modelid-nodes-nodeid-form"></a>Read Form Node

GET /workflow/models/{modelId}/nodes/{nodeId}/form

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| nodeId | true | string | The ID of the node |

### <a id="get-workflow-models-modelid-versions-versionid"></a>Read Workflow Model

Reads an instance of a Workflow Model

GET /workflow/models/{modelId}/versions/{versionId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| versionId | true | string |  |

#### Response

```json
{
  "type": "object",
  "extends": "document",
  "description": "Workflow Model",
  "container": "platform",
  "properties": {
    "id": {
      "type": "string",
      "title": "Model ID",
      "description": "A textual unique identifier for the workflow"
    },
    "version": {
      "type": "number",
      "title": "Version",
      "description": "The version of the workflow (long)"
    },
    "deployed": {
      "type": "boolean",
      "title": "Deployed",
      "description": "Indicates whether this workflow model has already been deployed.  If the model has already been deployed, it cannot be deleted."
    },
    "head": {
      "type": "boolean",
      "title": "Head",
      "description": "Indicates whether this workflow model version is the head version.  Only one workflow model version will have head marked as true at a time."
    },
    "nodes": {
      "type": "object",
      "title": "Nodes",
      "description": "Contains a map of the node definitions for the workflow, keyed by node ID"
    },
    "swimlanes": {
      "type": "object",
      "title": "Swimlanes",
      "description": "Contains a map of swimlane definitions and assignments for the workflow, keyed by swimlane ID"
    },
    "properties": {
      "type": "object",
      "title": "Properties",
      "description": ""
    },
    "forms": {
      "type": "object",
      "title": "Forms",
      "description": ""
    },
    "emails": {
      "type": "object",
      "title": "Emails",
      "description": ""
    },
    "_doc": null,
    "_system": null
  }
}
```

### <a id="get-workflow-models-modelid"></a>Read Workflow Model

Reads an instance of a Workflow Model

GET /workflow/models/{modelId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| version | false | string |  |

#### Response

```json
{
  "type": "object",
  "extends": "document",
  "description": "Workflow Model",
  "container": "platform",
  "properties": {
    "id": {
      "type": "string",
      "title": "Model ID",
      "description": "A textual unique identifier for the workflow"
    },
    "version": {
      "type": "number",
      "title": "Version",
      "description": "The version of the workflow (long)"
    },
    "deployed": {
      "type": "boolean",
      "title": "Deployed",
      "description": "Indicates whether this workflow model has already been deployed.  If the model has already been deployed, it cannot be deleted."
    },
    "head": {
      "type": "boolean",
      "title": "Head",
      "description": "Indicates whether this workflow model version is the head version.  Only one workflow model version will have head marked as true at a time."
    },
    "nodes": {
      "type": "object",
      "title": "Nodes",
      "description": "Contains a map of the node definitions for the workflow, keyed by node ID"
    },
    "swimlanes": {
      "type": "object",
      "title": "Swimlanes",
      "description": "Contains a map of swimlane definitions and assignments for the workflow, keyed by swimlane ID"
    },
    "properties": {
      "type": "object",
      "title": "Properties",
      "description": ""
    },
    "forms": {
      "type": "object",
      "title": "Forms",
      "description": ""
    },
    "emails": {
      "type": "object",
      "title": "Emails",
      "description": ""
    },
    "_doc": null,
    "_system": null
  }
}
```

### <a id="post-workflow-models-modelid-authorities-authorityid-revoke"></a>Revoke Authority

Revokes an authority against the specified workflowModel from a given user

POST /workflow/models/{modelId}/authorities/{authorityId}/revoke

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| authorityId | true | string | The ID or authority key for the authority |
| id | true | string |  |
| version | false | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-workflow-models-modelid-undeploy"></a>Undeploy Model

POST /workflow/models/{modelId}/undeploy

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| version | true | string |  |

### <a id="post-workflow-models-modelid-versions-versionid-undeploy"></a>Undeploy Version

POST /workflow/models/{modelId}/versions/{versionId}/undeploy

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| versionId | true | string |  |

### <a id="put-workflow-models-modelid-versions-versionid"></a>Update Workflow Model

Updates an existing Workflow Model

PUT /workflow/models/{modelId}/versions/{versionId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| versionId | true | string |  |
| force | false | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="put-workflow-models-modelid"></a>Update Workflow Model

Updates an existing Workflow Model

PUT /workflow/models/{modelId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| version | false | string |  |
| force | false | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-workflow-models-modelid-versions-versionid-update"></a>Update Workflow Model

Updates an existing Workflow Model

POST /workflow/models/{modelId}/versions/{versionId}/update

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| versionId | true | string |  |
| force | false | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-workflow-models-modelid-update"></a>Update Workflow Model

Updates an existing Workflow Model

POST /workflow/models/{modelId}/update

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| modelId | true | string |  |
| version | false | string |  |
| force | false | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-workflow-instances-workflowid-upgrade"></a>Upgrade Instance

POST /workflow/instances/{workflowId}/upgrade

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| workflowId | true | string |  |
| id | false | string |  |
| version | false | string |  |

### <a id="post-workflow-instances-upgrade"></a>Upgrade Instances

POST /workflow/instances/upgrade

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| id | true | string |  |
| version | true | string |  |
| targetId | false | string |  |
| targetVersion | false | string |  |

## <a id="schema"></a>Schema

```json

{
  "type": "object",
  "extends": "document",
  "description": "Workflow Model",
  "container": "platform",
  "properties": {
    "id": {
      "type": "string",
      "title": "Model ID",
      "description": "A textual unique identifier for the workflow"
    },
    "version": {
      "type": "number",
      "title": "Version",
      "description": "The version of the workflow (long)"
    },
    "deployed": {
      "type": "boolean",
      "title": "Deployed",
      "description": "Indicates whether this workflow model has already been deployed.  If the model has already been deployed, it cannot be deleted."
    },
    "head": {
      "type": "boolean",
      "title": "Head",
      "description": "Indicates whether this workflow model version is the head version.  Only one workflow model version will have head marked as true at a time."
    },
    "nodes": {
      "type": "object",
      "title": "Nodes",
      "description": "Contains a map of the node definitions for the workflow, keyed by node ID"
    },
    "swimlanes": {
      "type": "object",
      "title": "Swimlanes",
      "description": "Contains a map of swimlane definitions and assignments for the workflow, keyed by swimlane ID"
    },
    "properties": {
      "type": "object",
      "title": "Properties",
      "description": ""
    },
    "forms": {
      "type": "object",
      "title": "Forms",
      "description": ""
    },
    "emails": {
      "type": "object",
      "title": "Emails",
      "description": ""
    },
    "_doc": null,
    "_system": null
  },
  "id": "workflowModel"
}
```
