You can edit the schema for a selected domain type by selecting the Domain Type option available from the Create/Edit Input/Output Property for Service dialog box and then clicking the plus sign or wrench icon next to the domain type.
The following table describes the Edit Domain Type Definition dialog box fields, subfields, and field groups. A field group is a collection of fields that are related to a specific action or configuration.
When you enter information in a dialog box, if the information is not valid, errors that include a description of the problem appear at the right side of the box.
Field | Subfield | Description |
---|---|---|
Domain Type Name: * | - | Specifies the name for the domain type. |
Domain Type ID: | - | Specifies an ID (address) for the domain type. |
Domain Type Schema: | - | Specifies the schema for the domain type. The format conforms to the JSON schema (http://json-schema.org/). |
Generate Template (Button): | - | Generates a GUI Definition based on the domain type schema. You do not need to enter the GUI Definition from scratch because the basic structure is the same as for the Domain Type ID. |
GUI Definition ID: | - | Specifies UI definition ID. |
GUI Definition: | - | Specifies the UI definition. |
Fields with an asterisk (*) are required. |
The following table shows the property definition attributes in the GUI Definition.
Key | Description |
---|---|
displayName | Display name of property. |
description | Description of property. |
presentation | Presentation type of property. "input", "textarea", "url", "select", "radio", "check box", "spinbox", "capacity", "capacityInKB", "capacityInMB", "capacityInGB", "capacityInTB", "capacityiB", "capacityInKiB", "capacityInMiB", "capacityInGiB", "capacityInTiB", "datePicker", "hex", or "file". |
permission | Permission of property; "locked", "unlocked", or "hidden" |
visibility | Visibility of property; "exec" or "config" |
required | Specifies whether the property is required; true or false. |
pattern | Accepted regular expression pattern of the property value. |
validationScript | Validation script of the property value. |
showIf | Show condition of property. |
enableIf | Activate condition of property. |
enum | Specifies an array. You can define JSON objects in it. |
enumDataSource | Specifies an external resource provider as in the following example:
"enumDataSource": { "url":"/Automation/v1/objects/ExternalResources/1eb39858-48b5-4d3a-b82a-9af5c91af8c4", "contentType": "application/json", "nameField": "hostGroupName", "valueField": "id" } |
contentType | Content type of composite type; "application/json", "application/javascript", "application/xml", "text/html", "text/plain", "text/csv", or "application/octet-stream" |
hidden | Show or hide a column in a table. true: Hide a column by default. false: Show a column by default. |
Following are examples of the domain type schema and UI definition representing a volume setting in the built-in Allocate Volume service:
Domain type schema
{ "type": "object", "properties": { "values": { "type": "array", "title": "Volume Settings", "minItems": 1, "maxItems": 10, "items": { "type": "object", "properties": { "usage": { "type": "string", "minLength": 1, "maxLength": 64, "pattern": "^[A-Za-z0-9 ~!@#\\$%\\^&()_\\+\\-=\\{\\}\\[\\]'\\.`]*$", "default": "" }, "numberOfVolumes": { "type": "integer", "minimum": 1, "maximum": 500, "default": 2 }, "capacity": { "type": "integer", "minimum": 10, "maximum": 200, "default": 50 }, "storageProfile": { "type": "string", "enum": [ "Gold Write", "Silver Write" ], "default": "Gold Write" }, "ldevLabel": { "type": "string", "minLength": 0, "maxLength": 64, "pattern": "^[A-Za-z0-9 ~!@#\\$%\\^&\\*()_\\+\\-=\\{\\}\\[\\]\\|:;'<>\\.\\?\\/`]*$", "default": "" }, "ldevSetting": { "type": "object", "properties": { "fullAllocation": { "type": "string", "enum": [ "Enable", "Disable" ], "default": "Disable" } } }, "lunSetting": { "type": "object", "properties": { "lunStartsFrom": { "type": "integer", "description": "Enter a value in hex format.", "default": 0, "minimum": 0, "maximum": 2047 } } } } } } } }
GUI definition
{ "displayName": "Volume Settings", "properties": { "values": { "displayName": "Volume Settings", "showLabel": false, "permission": "locked", "visibility": "exec", "items": { "displayName": "Volume Setting", "properties": { "usage": { "displayName": "Volume Usage", "permission": "unlocked", "visibility": "exec", "required": true }, "numberOfVolumes": { "displayName": "Number of Volumes", "permission": "unlocked", "visibility": "exec", "required": true }, "capacity": { "displayName": "Volume Capacity", "permission": "unlocked", "visibility": "exec", "required": true, "presentation": "capacityInGB" }, "storageProfile": { "displayName": "Storage Profile", "permission": "unlocked", "visibility": "exec", "required": true, "presentation": "select" }, "ldevLabel": { "displayName": "Volume Label", "permission": "unlocked", "visibility": "exec", "required": false }, "ldevSetting": { "displayName": "LDEV Setting", "permission": "unlocked", "visibility": "exec", "properties": { "fullAllocation": { "displayName": "Full Allocation", "visibility": "exec", "permission": "unlocked", "required": true, "presentation": "select" } } }, "lunSetting": { "displayName": "LUN Setting", "permission": "unlocked", "visibility": "exec", "properties": { "lunStartsFrom": { "displayName": "LUN Starts From", "visibility": "exec", "permission": "unlocked", "required": true } } } } } } } }