Property Configuration


Property Workflows are ways of creating custom property ‘templates’ that are used to apply a set of Custom Properties with static Category & Key values.

The actions here focus on managing the template. See here for actions relating to Custom Property creation.


Property Configuration Object

{
    "id": "54a1c20e-a09e-49c8-b0dd-341fa32fb7aa",
    "configurationJson": "{...}",
    "name": "Vualto Example Schema",
    "referenceId": "Reference-Id"
}

ConfigurationJson

The configuration JSON is the actual content of the workflow, and it is made up of multiple ‘properties’ inside of a configuration.

{
    "configuration": [
        {
            "name": "Identifier1",
            "displayName": "Test Property",
            "type": "TextField",
            "category": "Category",
            "key": "TextFieldData",
            "defaultValue": "DefaultValue",
            "required": false
        },
        {
            "name": "Identifier2",
            "displayName": "Test Property 2",
            "type": "SelectList",
            "category": "Category",
            "key": "SelectListData",
            "additionalProperties": {
                "options": [ "Option1", "Option2" ]
            }
        }
    ]
}

You can have as many of these as you want, and aside from the type and additionalProperties elements, there are no restrictions on the values. See below for this information.

Property Types:

The ‘type’ property for an object must also be a supported value. It is used to inform the system of the value type (i.e. Date, Time, etc.).

TextField - for any value that doesn't need formatting or validation.

TextArea - for any long values which benefit from multi-line display.

DateField - for any value which is formatted as a Date. Recommended to specify dateFormat in Additional Properties.

TimeField - for any value which is formatted as a Time. Recommended to specify timeFormat in Additional Properties.

CheckBox - for any value which should only be 'True' or 'False'.

SelectList - for any value which has a finite set of possibilities. Required to specify options in Additional Properties.

Additional Properties:

Additional Properties are extra details which can enable data constraints & validation. All of them are optional, meaning you can drop the ‘additionalProperties’ from the JSON all together.

minimumLength: {int} - the minimum length to allow for the property value.

maximumLength: {int} - the maximum length to allow for the property value.

minimumValue: {int} - the minimum value to allow for the property value. Note: this will enforce a numerical-only value.

maximumValue: {int} - the maximum value to allow for the property value. Note: this will enforce a numerical-only value.

requireNumber: {bool} - whether to enforce a numerical-only value (allows for any value otherwise).

options: {JSON Array} - an array of values to permit, preventing all others. Example: `[ "option1", "option2" ]`

dateFormat: {string} - the DateTime format to parse the value as (e.g. 'dd/MM/yyyy').

timeFormat: {string} - the TimeSpan format to parse the value as (e.g. 'hh:mm:ss').

regexFormat: {string} - the REGEX format to validate the value against (e.g. '\d+').

jsonFormat: {string} - the JSON Schema to validate the value against.

requireJson: {bool} - whether to enforce a JSON-only value (a simpler alternative to jsonFormat).

Supported Actions

POST /propertyconfiguration/

Add or Update a Property Configuration.

Request Body:

{
  "id": null,
  "name": "Example Configuration",
  "referenceId": "reference-id",
  "configurationJson": "{...}"
}

Note: id is required when updating a specific configuration, but optional when adding.

Response: 200 OK or 400 Bad Request if the configuration is invalid.


GET /propertyconfiguration/

Gets all Property Configurations.

Query Parameters:

Name Type Required Description
noCache bool No Whether or not to bypass cache. Defaults to False.

Response:

200 OK and a JSON array containing multiple Property Configuration objects.

or

204 No Content if no Property Configuration was found.


GET /propertyconfiguration/{id}

Get a Property Configuration by Id.

Query Parameters:

Name Type Required Description
noCache bool No Whether or not to bypass cache. Defaults to False.

Response: 200 OK and JSON containing the Property Configuration object.


GET /propertyconfiguration/reference

Get a Property Configuration by Reference Id.

Query Parameters:

Name Type Required Description
id string Yes The reference ID. Must be percent-encoded.
noCache bool No Whether or not to bypass cache. Defaults to False.

Response: 200 OK and JSON containing the Property Configuration object.


DEL /propertyconfiguration/{id}

Delete a Property Configuration by Id.

Response: 410 Gone


DEL /propertyconfiguration/reference

Delete a Property Configuration by Reference Id.

Query Parameters:

Name Type Required Description
id string Yes The reference ID. Must be percent-encoded.

Response: 410 Gone