{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "SWADL (Symphony Workflow Automation Definition Language) is a language to describe workflows on Symphony.", "default": {}, "type": "object", "additionalProperties": false, "required": [ "id", "activities" ], "properties": { "id": { "type": "string", "description": "Workflow's id should start with a letter. It is optional. If no id is provided, the workflow filename is used. Otherwise, it will be generated. The id will appear in logs and audit trails.", "pattern": "^[a-zA-Z]+[a-zA-Z0-9][^ ]*$", "default": "my-workflow", "maxLength": 100 }, "properties": { "type": "object", "description": "Some metadata about the workflow", "properties": { "publish": { "type": [ "boolean", "string" ], "description": "Should the workflow be published or not, true publish, false otherwise", "default": true } } }, "variables": { "type": "object", "description": "Variables are accessible and editable within the entire workflow. A map of key: value entries is expected." }, "activities": { "type": "array", "minLength": 1, "description": "A list of activities to be executed by the workflow. By default the execution is sequential but complex logic can be orchestrated with if/else conditions as well as on/activity-completed events.", "$comment": "Defined like this to support both validation and autocompletion, even with custom activities. Last item is removed on the fly during validation and replaced by known custom activities.", "items": { "type": "object", "additionalProperties": false, "properties": { "create-room": { "description": "Creates a new chatroom.", "x-intellij-html-description": "
Creates a new chatroom.\n
https://developers.symphony.com/restapi/reference#create-room-v3", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/create-room-inner" } ] }, "update-room": { "description": "Updates the attributes of an existing chat room.", "x-intellij-html-description": "Updates the attributes of an existing chat room.\n
https://developers.symphony.com/restapi/reference#update-room-v3", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/update-room-inner" } ] }, "add-room-member": { "description": "Adds new members to an existing room.", "x-intellij-html-description": "Adds a new members to an existing room.\n
https://developers.symphony.com/restapi/reference#add-member", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/add-room-member-inner" } ] }, "remove-room-member": { "description": "Removes members from an existing room.", "x-intellij-html-description": "Removes members from an existing room.\n
https://developers.symphony.com/restapi/reference#remove-member", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/remove-room-member-inner" } ] }, "promote-room-owner": { "description": "Promotes user to owner of the chat room.", "x-intellij-html-description": "Promotes user to owner of the chat room.\n
https://developers.symphony.com/restapi/reference#promote-owner", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/promote-room-owner-inner" } ] }, "demote-room-owner": { "description": "Demotes room owner to a participant in the chat room.", "x-intellij-html-description": "Demotes room owner to a participant in the chat room.
https://developers.symphony.com/restapi/reference#demote-owner", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/demote-room-owner-inner" } ] }, "send-message": { "description": "Posts a message to a stream.", "x-intellij-html-description": "Posts a message to a stream.
https://developers.symphony.com/restapi/reference#create-message-v4", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/send-message-inner" } ] }, "update-message": { "description": "Updates an existing message into a stream.", "x-intellij-html-description": "Updates an existing message into a stream.
https://developers.symphony.com/restapi/reference#update-message-v4", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/update-message-inner" } ] }, "pin-message": { "description": "Pin an existing message into the stream it belongs to.", "x-intellij-html-description": "Pin an existing message into the stream it belongs to.https://developers.symphony.com/restapi/reference#update-room-v3(https://developers.symphony.com/restapi/v20.13/reference#update-im", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/pin-message-inner" } ] }, "unpin-message": { "description": "Unpin any message (if present) from an existing stream.", "x-intellij-html-description": "
Unpin any message (if present) from an existing stream.
https://developers.symphony.com/restapi/reference#update-room-v3(https://developers.symphony.com/restapi/v20.13/reference#update-im", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/unpin-message-inner" } ] }, "get-attachment": { "description": "Gets one attachment and stores it locally.", "x-intellij-html-description": "Gets one attachment and stores it locally.
https://developers.symphony.com/restapi/reference#attachment", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/get-attachment-inner" } ] }, "debug": { "description": "Standard debug activity.", "x-intellij-html-description": "Standard debug activity.
", "type": "object", "properties": { "id": { "description": "Activity's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.", "type": "string", "$comment": "variables is forbidden to avoid conflict with variables.output... that would override the workflows variables", "pattern": "^(?!variables$)([a-zA-Z][a-zA-Z0-9_]+)$" }, "on": { "$ref": "#/definitions/on" }, "if": { "description": "Conditional execution of the activity based on a boolean expression.", "type": "string" }, "else": { "description": "Default execution of the activity when if conditions are used for previous activities.", "type": "object" }, "object": { "type": [ "object", "string" ] } }, "required": [ "object" ] }, "execute-script": { "description": "Executes a Groovy script.", "x-intellij-html-description": "Executes a Groovy script.
", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/execute-script-inner" } ] }, "execute-request": { "description": "Executes an HTTP request.", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/execute-request-inner" } ] }, "create-user": { "description": "Creates a new end user.", "x-intellij-html-description": "Creates a new end user.
https://developers.symphony.com/restapi/reference#create-user-v2", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/create-user-inner", "required": [ "email", "username", "firstname", "lastname", "display-name" ] } ] }, "update-user": { "description": "Updates an existing end user.", "x-intellij-html-description": "Updates an existing end user.
https://developers.symphony.com/restapi/reference#update-user-v2", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/create-user-inner" }, { "type": "object", "properties": { "user-id": { "$ref": "#/definitions/user-id" } }, "required": [ "user-id" ] } ] }, "create-system-user": { "description": "Creates a new service user.", "x-intellij-html-description": "Creates a new service user.
https://developers.symphony.com/restapi/reference#create-user-v2", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/create-system-user-inner", "required": [ "email", "username", "display-name" ] } ] }, "update-system-user": { "description": "Updates an existing service user.", "x-intellij-html-description": "Updates an existing service user.
https://developers.symphony.com/restapi/reference#update-user-v2", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/create-system-user-inner" }, { "type": "object", "properties": { "user-id": { "$ref": "#/definitions/user-id" } }, "required": [ "user-id" ] } ] }, "add-user-role": { "description": "Adds roles to user accounts.", "x-intellij-html-description": "Adds a role or optional entitleable action to a user’s account.
https://developers.symphony.com/restapi/reference#add-role", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/user-role-inner" } ] }, "remove-user-role": { "description": "Removes roles from user accounts.", "x-intellij-html-description": "Removes a role or optional entitleable action from a user’s account.
https://developers.symphony.com/restapi/reference#remove-role", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/user-role-inner" } ] }, "get-user": { "description": "Returns details for a particular user.", "x-intellij-html-description": "Returns details for a particular user.
https://developers.symphony.com/restapi/reference#get-user-v2", "type": "object", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/get-user-inner" } ] }, "get-users": { "description": "Returns a list of users ID, including user metadata.", "x-intellij-html-description": "Returns a list of users ID, including user metadata.
https://developers.symphony.com/restapi/reference#users-lookup-v3", "type": "object", "allOf": [ { "$ref": "#/definitions/basic-activity-inner" }, { "$ref": "#/definitions/get-users-inner" } ] }, "get-stream": { "type": "object", "description": "Returns information about a particular stream.", "x-intellij-html-description": "Returns information about a particular stream.
https://developers.symphony.com/restapi/reference#stream-info-v2Returns information about a particular chat room.
https://developers.symphony.com/restapi/reference#room-info-v3