[Index]
Data model containing validation definitions
Model ref.: data/ValidationRules
The full URL would include the host-proxy name: https://[host-proxy].
Variables are enclosed in square brackets.
{ "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "properties": { "modelName": { "title": "Model Name", "type": "string" }, "enabled": { "title": "Enabled", "type": "boolean", "default": true }, "operation": { "title": "Operation", "type": "string", "choices": [ { "value": "create", "title": "Create" }, { "value": "update", "title": "Update" } ] }, "description": { "title": "Description", "type": "string" }, "refreshModels": { "title": "Refresh Data", "description": "Refresh data instances prior to applying validation rules. This ensures current data is evaluated.", "type": "array", "items": { "type": "object", "properties": { "modelName": { "title": "Model Name", "type": "string" }, "attribute": { "title": "Find Attribute", "description": "The attribute in the target model to match.", "type": "string" }, "value": { "title": "Find Value", "description": "The value of the attribute in the target model to match.", "type": "string" } } } }, "syncModels": { "title": "Data Sync Data", "description": "Data sync instances prior to applying validation rules. This ensures current data is evaluated.", "type": "array", "items": { "type": "object", "properties": { "modelName": { "title": "Model Name", "type": "string" }, "deviceInstance": { "title": "Device Instance", "type": "string" }, "deviceType": { "title": "Device Type", "type": "string" }, "attribute": { "title": "Find Attribute", "description": "The attribute in the target model to match.", "type": "string" }, "value": { "title": "Find Value", "description": "The value of the attribute in the target model to match.", "type": "string" } } } }, "dataModelUpdate": { "title": "Data Model Update", "description": "Update data user attributes once device instance has been target synced.", "type": "array", "items": { "type": "object", "properties": { "modelName": { "title": "Model Name", "type": "string" }, "attribute": { "title": "Find Attribute", "description": "The attribute in the target model to match.", "type": "string" }, "value": { "title": "Find Value", "description": "The value of the attribute in the target model to match.", "type": "string" }, "template": { "title": "Update Template", "description": "The name of the template to be used for the update.", "type": "string" }, "updateAttribute": { "title": "Attribute to update", "description": "The value of the template to be used in update.", "type": "string" } } } }, "rules": { "title": "Rules", "type": "array", "required": true, "items": { "type": "object", "properties": { "enabled": { "title": "Enabled", "type": "boolean", "default": true }, "attribute": { "title": "Attribute", "type": "string" }, "rule": { "title": "Rule", "description": "Macro that evaluates to true when required condition is met", "type": "string", "choices": [ { "value": "(( fn.is_none_or_empty pwf.attributeValue == false ))<{{ fn.true }}><{{ fn.false }}>", "title": "Required" }, { "value": "(( fn.lower pwf.attributeValue == pwf.attributeValue ))<{{ fn.true }}><{{ fn.false }}>", "title": "Lower Case Only" }, { "value": "(( fn.upper pwf.attributeValue == pwf.attributeValue ))<{{ fn.true }}><{{ fn.false }}>", "title": "Upper Case Only" }, { "value": "(( fn.length pwf.attributeValue < 32 ))<{{ fn.true }}><{{ fn.false }}>", "title": "Less Than 32 Characters" }, { "value": "(( fn.length pwf.attributeValue < 50 ))<{{ fn.true }}><{{ fn.false }}>", "title": "Less Than 50 Characters" }, { "value": "custom", "title": "Custom - enter macro" } ] }, "message": { "title": "Message", "type": "string" }, "hierarchy": { "title": "Macro Evaluation Hierarchy", "description": "Optional macro to provide a hierarchy at which to evaluate the rule. If unset, the execution hierarchy will be used.", "type": "string" } } } } }, "schema_version": "1.1" }
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Get the GUI Add form. | GET | /api/data/ValidationRules/add/ |
|
The GUI Add form of data/ValidationRules as JSON |
The API call to the /add/ URL can only be made from a hierarchy that allows the model type to be added. The actions in the response shows the url for the POST API call to create an instance.
Task | Call | URL | Parameters | Payload |
---|---|---|---|---|
Create | POST | /api/data/ValidationRules | hierarchy=[hierarchy] |
|
tool/Transaction/[trans pkid]to inspect the created resource and its instance pkid.
Task | Call | URL | Parameters | Payload |
---|---|---|---|---|
Bulk delete [pkid1],[pkid2]... | DELETE | /api/data/ValidationRules/ | hierarchy=[hierarchy] | {"hrefs":["/api/data/ValidationRules/[pkid1]", "/api/data/ValidationRules/[pkid2]", ...]} |
GET http://[host-proxy]/api/data/ValidationRules/?hierarchy=[hierarchy]&format=json
Task | Call | URL | Parameters | Payload |
---|---|---|---|---|
Get a selected [export_format] of the schema and instances [pkid1], [pkid2],... of data/ValidationRules; optionally with tag_version at [version] and Configuration Template as [configtemplate]. | POST | /api/data/ValidationRules/export/ |
|
{ "hrefs":["/api/data/ValidationRules/[pkid1]", "/api/data/ValidationRules/[pkid2]",...]}} |
For export_format=json, the response is a time stamped zip file of data in JSON as in the system database. Item properties such as strings that are empty or Boolean values that are not set, are not included. The filename in the response is of the format as the example:
Content-Disposition: attachment; filename=export_2013-05-17_14:20:19.186444.json.zip Content-Language:en Content-Type:application/x-zip
For export_format=raw_xlsx, the response is a MS Excel spreadsheet with columns corresponding to the JSON format export and a response filename format:
Content-Disposition: attachment; filename=<resource_type>_<resource_name>_exportedsheet_CCYY-MM-DD_HH-MM-SS.xlsx Content-Language:en Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
For export_format=xlsx, the response is a MS Excel spreadsheet, arranged by any Field Display Policies that apply. The columns correspond with those of a Bulk Load Template export sheet. The response filename format is:
Content-Disposition: attachment; filename=<resource_type>_<resource_name>_exportedsheet_formatted_CCYY-MM-DD_HH-MM-SS.xlsx Content-Language:en Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
The XLSX format can be used to bulk load instances of data/ValidationRules and the JSON format can be used to import instances of data/ValidationRules.
GET http://[host-proxy]/api/data/ValidationRules/?hierarchy=[hierarchy]
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Get a compressed format of the Bulk Load spreadsheet template for data/ValidationRules | POST | /api/data/ValidationRules/export_bulkload_template/ |
|
The response is an attachment of the format: filetype_bulkloadsheet.xlsx.gz |
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Field Display Policy | GET | /api/data/ValidationRules/field_display_policy/ | hierarchy=[hierarchy] |
|
POST http://[host-proxy]/api/data/FieldDisplayPolicy/?hierarchy=[hierarchy]
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
List | GET | /api/data/ValidationRules/ |
|
The data/ValidationRules schema and all instances as JSON. |
(The list will return 0 to 3 data/ValidationRules instances)
{ "pagination": { "skip": 0, "limit": 3, "maximum_limit": 2000, "total": 1, "total_limit": null, "order_by": "modelName", "direction": "asc", "current": "/api/data/ValidationRules/?skip=0&limit=3&order_by=modelName&direction=asc&traversal=fulltree" }, "operations": [ "field_display_policy", "update", "help", "remove", "move", "add", "export", "list", "configuration_template", "get", "bulk_update_form", "migration", "transform", "export_bulkload_template" ], "meta": { "model_type": "data/ValidationRules", "summary_attrs": [ { "name": "modelName", "title": "Model Name" }, { "name": "operation", "title": "Operation" }, { "name": "description", "title": "Description" }, { "name": "hierarchy_friendly_name", "title": "Located At", "allow_filtering": true } ], "tagged_versions": [], "tags": [], "title": "", "business_key": { "unique": [ "modelName", "operation" ], "hierarchy": true }, "api_version": "21.2", "cached": true, "references": { "children": [], "parent": [ { "href": "/api/data/HierarchyNode/6t0ggef2c0deab00hb595101", "pkid": "6t0ggef2c0deab00hb595101" } ], "device": [ { "href": "", "pkid": "" } ], "foreign_key": [] }, "model_specific_actions": [ "add", "export", "export_bulkload_template", "field_display_policy", "get", "list", "remove", "update" ], "schema_version": "1.1", "actions": [ { "add": { "method": "GET", "class": "add", "href": "/api/data/ValidationRules/add/?hierarchy=[hierarchy]", "support_async": false, "title": "Add" } }, { "remove": { "method": "DELETE", "class": "delete", "href": "/api/data/ValidationRules/?hierarchy=[hierarchy]", "support_async": true, "title": "Delete" } }, { "export": { "method": "POST", "class": "export", "href": "/api/data/ValidationRules/export/?hierarchy=[hierarchy]", "support_async": false, "title": "Export", "view": "/api/view/ExportData/add/?auth_token=[authtoken], "submit": "payload" } }, { "export_bulkload_template": { "method": "POST", "class": "bulkload_template", "href": "/api/data/ValidationRules/export_bulkload_template/?hierarchy=[hierarchy]", "support_async": false, "title": "Export Bulk Load Template" } }, { "field_display_policy": { "method": "GET", "class": "display_policy", "href": "/api/data/ValidationRules/field_display_policy/?hierarchy=[hierarchy]", "support_async": false, "title": "Field Display Policy" } }, { "list": { "method": "GET", "class": "list", "href": "/api/data/ValidationRules/?hierarchy=[hierarchy]", "support_async": false, "title": "List" } } ] }, "resources": [ { "data": { "modelName": "view/HybridMultiVendorVIEW", "enabled": true, "operation": "create", "description": "MVS validation rules", "refreshModels": [ { "modelName": "device/msgraph/MsolUser", "attribute": "UserPrincipalName", "value": "{{ data.User.username_ms_365 | username:input.username }}" } ], "syncModels": [ { "modelName": "device/msteamsonline/CsOnlineUser", "deviceInstance": "{{ fn.pkid_to_bkey macro.PKID_OF_MSTEAMS_ONLINE_FOR_SITE }}", "deviceType": "data/MSTeamsOnline", "attribute": "UserPrincipalName", "value": "{{ data.User.username_ms_365 | username:input.username }}" } ], "dataModelUpdate": [ { "modelName": "data/User", "attribute": "username_ms_365", "value": "{{ data.User.username_ms_365 | username:input.username }}", "template": "UpdateMsAttrsCFT", "updateAttribute": "username_ms_teams" } ], "rules": [ { "enabled": true, "attribute": "username", "rule": "(( input.MultiVendorServiceType == data.SubscriberProfile.name | name:input.MultiVendorServiceType,hybrid:fn.true ))<{{ fn.true }}><{{ fn.false }}>", "message": "Hybrid Service Type - [{{ input.MultiVendorServiceType }}] does not exist." }, { "enabled": true, "attribute": "username", "rule": "(( fn.lower input.username == fn.lower macro.Multivendor_Validate_GetDataUsername )) <{{ fn.true }}> <{{ fn.false }}>", "message": "[{{ input.username }}] data/User cannot be found." }, { "enabled": true, "attribute": "line1DN", "rule": "(( data.MultiVendorServiceDefinitions_DAT.noService | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile | direction:up == true ))<{{ fn.true }}>(( fn.is_none_or_empty pwf.attributeValue == false ))<{{ fn.true }}><{{ fn.false }}>", "message": "A valid Directory Number for [{{ input.username }}] has not been selected." }, { "enabled": true, "attribute": "line1DN", "rule": "(( data.MultiVendorServiceDefinitions_DAT.noService | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile | direction:up == true ))<{{ fn.true }}>(( data.InternalNumberInventory.internal_number | internal_number:pwf.attributeValue == pwf.attributeValue ))<{{ fn.true }}><{{ fn.false }}>", "message": "A valid Directory Number for [{{ input.username }}] has not been selected." }, { "enabled": true, "attribute": "line1DN", "rule": "(( data.MultiVendorServiceDefinitions_DAT.noService | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile | direction:up == true ))<{{ fn.true }}>(( fn.list_contain pwf.attributeValue,macro.hybridUserLineList == true ))<{{ fn.true }}>(( data.User.mvs_extensions.*.line | mvs_extensions.*.line:pwf.attributeValue == pwf.attributeValue ))<{{ fn.false }}>(( fn.list_contain pwf.attributeValue,macro.MS-Teams-getUserCucmLines == true ))<{{ fn.true }}> (( fn.contains macro.Multivendor_Validate_E164_LineUri_format,macro.Multivendor_Validate_CsolUser-LineURI == true )) <{{ fn.true }}> (( data.InternalNumberInventory.status | internal_number:pwf.attributeValue == Available ))<{{ fn.true }}><{{ fn.false }}>", "message": "The selected Directory Number - [{{ pwf.attributeValue }}] is Used." }, { "enabled": true, "attribute": "line1DN", "rule": "(( data.MultiVendorServiceDefinitions_DAT.noService | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile | direction:up == true ))<{{ fn.true }}>(( data.InternalNumberInventory.status | internal_number:pwf.attributeValue == Reserved ))<{{ fn.false }}>(( fn.list_in pwf.attributeValue, data.InternalNumberInventory.internal_number | extra1:/Reserved/i == True ))<{{ fn.false }}><{{ fn.true }}>", "message": "The selected Directory Number - [{{ pwf.attributeValue }}] is Reserved." }, { "enabled": true, "attribute": "entitlement_profile", "rule": "(( fn.is_none_or_empty macro.Multivendor_Validate_GetEpFromServiceType == false ))<{{ fn.true }}>(( fn.list_in pwf.attributeValue, data.HcsEntitlementProfileDAT.__bkey || direction:up == True ))<{{ fn.true }}><{{ fn.false }}>", "message": "A valid Entitlement Profile for [{{ input.username }}] has not been set." }, { "enabled": true, "attribute": "qagroup_name", "rule": "(( fn.is_none_or_empty macro.Multivendor_Validate_GetGroupFromServiceType == false ))<{{ fn.true }}>(( input.qagroup_name == pwf.unset ))<{{ fn.false }}>(( fn.is_none_or_empty pwf.attributeValue == false ))<{{ fn.true }}><{{ fn.false }}>", "message": "A valid Quick Add Group for [{{ input.username }}] has not been set." }, { "enabled": true, "attribute": "username", "rule": "(( macro.global_setting_map_upn_from_cucm_useridentity == fn.true ))<{{ fn.true }}>(( fn.is_none_or_empty macro.Multivendor_Validate_GetMs365Username == fn.true ))<{{ fn.false }}><{{ fn.true }}>", "message": "[{{ input.username }}] is not associated with a Microsoft 365 user account." }, { "enabled": true, "attribute": "username", "rule": "(( macro.global_setting_map_upn_from_cucm_useridentity == fn.true ))<{{ fn.true }}>(( fn.is_none_or_empty macro.Multivendor_Validate_GetMsTeamsUsername == fn.true ))<{{ fn.false }}><{{ fn.true }}>", "message": "[{{ input.username }}] is not associated with a Microsoft Teams Online user account." }, { "enabled": true, "attribute": "line1E164", "rule": "(( macro.global_setting_map_upn_from_cucm_useridentity == fn.true ))<{{ fn.true }}>(( data.MultiVendorServiceDefinitions_DAT.noService | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile | direction:up == fn.true ))<{{ fn.true }}>(( fn.is_none_or_empty pwf.attributeValue == true ))<{{ fn.true }}>(( fn.list_contain macro.MS-Teams-GetUserCsolUpnFromUsername,macro.MS-Teams-GetUserNameFromLineURI == true ))<{{ fn.true }}>(( macro.MS-Teams-GetUserNameFromLineURI == fn.list_empty ))<{{ fn.true }}><{{ fn.false }}>", "message": "LineURI is associated with another user [{{ fn.one macro.MS-Teams-GetUserNameFromLineURI }}]" }, { "enabled": true, "attribute": "MultiVendorServiceType", "rule": "(( macro.global_setting_map_upn_from_cucm_useridentity == fn.true ))<{{ fn.true }}>(( fn.list_contain MicrosoftSubscriberQas,macro.Multivendor_ValidateHybridViewList == fn.false ))<{{ fn.true }}>(( fn.list_contain PhoneSystem,macro.ValidateMicrosoftTeamsServices == fn.true ))<{{ fn.true }}><{{ fn.false }}>", "message": "User does not have the required license", "hierarchy": "{{ data.BaseCustomerDAT.Hierarchy || direction:up }}" }, { "enabled": true, "attribute": "MultiVendorServiceType", "rule": "(( fn.list_contain MicrosoftSubscriberQas,macro.Multivendor_ValidateHybridViewList == false ))<{{ fn.true }}>(( fn.is_none_or_empty macro.Multivendor_Validate_GetTenantDialplanFromSdd == false ))<{{ fn.true }}><{{ fn.false }}>", "message": "Tenant Dialplan must be set in site defaults doc" }, { "enabled": true, "attribute": "MultiVendorServiceType", "rule": "(( macro.global_setting_map_upn_from_cucm_useridentity == fn.true ))<{{ fn.true }}>(( fn.list_contain MicrosoftSubscriberQas,data.MultiVendorServiceDefinitions_DAT.qasData.*.viewName | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile == fn.false ))<{{ fn.true }}>(( fn.is_none_or_empty macro.Multivendor_Validate_GetMsTeamsUsername == fn.false ))<{{ fn.true }}><{{ fn.false }}>", "message": "User does not have MS Teams username set" }, { "enabled": true, "attribute": "MultiVendorServiceType", "rule": "(( macro.global_setting_map_upn_from_cucm_useridentity == fn.true ))<{{ fn.true }}>(( data.SiteDefaultsDoc.allowMsolUserAdd || direction:local == fn.true ))<{{ fn.true }}>(( fn.list_contain MicrosoftSubscriberQas,data.MultiVendorServiceDefinitions_DAT.qasData.*.viewName | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile == fn.false ))<{{ fn.true }}>(( fn.is_none_or_empty macro.Multivendor_Validate_GetMs365Username == fn.false ))<{{ fn.true }}><{{ fn.false }}>", "message": "User does not have MS O365 username set" } ], "pkid": "650fe48084eaf2a1ce63915f", "hierarchy_friendly_name": "hcs (Hcs)", "hierarchy_path": "sys.hcs" }, "meta": { "model_type": "data/ValidationRules", "summary_attrs": [ { "name": "modelName", "title": "Model Name" }, { "name": "operation", "title": "Operation" }, { "name": "description", "title": "Description" }, { "name": "hierarchy_friendly_name", "title": "Located At", "allow_filtering": true } ], "tagged_versions": [], "tags": [ "V4UC", "ba_CommonOverlay" ], "title": "view/HybridMultiVendorVIEW - create", "business_key": { "hierarchy": true, "unique": [ "modelName", "operation" ] }, "api_version": "21.2", "cached": true, "references": { "device": [ { "href": "", "pkid": "" } ], "owner": [ { "pkid": "" } ], "parent": [ { "pkid": "5ad5bacbaffa9343e4d93e01", "href": "/api/data/HierarchyNode/5ad5bacbaffa9343e4d93e01" } ], "foreign_key": [], "self": [ { "href": "/api/data/ValidationRules/650fe48084eaf2a1ce63915e/", "pkid": "650fe48084eaf2a1ce63915e" } ] }, "path": [ "6t0ggef2c0deab00hb595101", "5ad5bacbaffa9343e4d93e01", "650fe48084eaf2a1ce63915e" ], "schema_version": "1.1", "actions": [ { "update": { "method": "PUT", "class": "update", "href": "/api/data/ValidationRules/650fe48084eaf2a1ce63915e/", "support_async": true, "title": "Modify" } }, { "remove": { "method": "DELETE", "class": "delete", "href": "/api/data/ValidationRules/650fe48084eaf2a1ce63915e/", "support_async": true, "title": "Delete" } }, { "export": { "method": "GET", "class": "export", "href": "/api/data/ValidationRules/650fe48084eaf2a1ce63915e/export/", "support_async": false, "title": "Export", "view": "/api/view/ExportData/add/", "submit": "payload" } }, { "get": { "method": "GET", "class": "get", "href": "/api/data/ValidationRules/650fe48084eaf2a1ce63915e/", "support_async": false, "title": "Get" } } ], "summary": "false" }, "pkid": "650fe48084eaf2a1ce63915e" } ] }
(Show the first instance)
{ "data": { "modelName": "view/HybridMultiVendorVIEW", "enabled": true, "operation": "create", "description": "MVS validation rules", "refreshModels": [ { "modelName": "device/msgraph/MsolUser", "attribute": "UserPrincipalName", "value": "{{ data.User.username_ms_365 | username:input.username }}" } ], "syncModels": [ { "modelName": "device/msteamsonline/CsOnlineUser", "deviceInstance": "{{ fn.pkid_to_bkey macro.PKID_OF_MSTEAMS_ONLINE_FOR_SITE }}", "deviceType": "data/MSTeamsOnline", "attribute": "UserPrincipalName", "value": "{{ data.User.username_ms_365 | username:input.username }}" } ], "dataModelUpdate": [ { "modelName": "data/User", "attribute": "username_ms_365", "value": "{{ data.User.username_ms_365 | username:input.username }}", "template": "UpdateMsAttrsCFT", "updateAttribute": "username_ms_teams" } ], "rules": [ { "enabled": true, "attribute": "username", "rule": "(( input.MultiVendorServiceType == data.SubscriberProfile.name | name:input.MultiVendorServiceType,hybrid:fn.true ))<{{ fn.true }}><{{ fn.false }}>", "message": "Hybrid Service Type - [{{ input.MultiVendorServiceType }}] does not exist." }, { "enabled": true, "attribute": "username", "rule": "(( fn.lower input.username == fn.lower macro.Multivendor_Validate_GetDataUsername )) <{{ fn.true }}> <{{ fn.false }}>", "message": "[{{ input.username }}] data/User cannot be found." }, { "enabled": true, "attribute": "line1DN", "rule": "(( data.MultiVendorServiceDefinitions_DAT.noService | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile | direction:up == true ))<{{ fn.true }}>(( fn.is_none_or_empty pwf.attributeValue == false ))<{{ fn.true }}><{{ fn.false }}>", "message": "A valid Directory Number for [{{ input.username }}] has not been selected." }, { "enabled": true, "attribute": "line1DN", "rule": "(( data.MultiVendorServiceDefinitions_DAT.noService | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile | direction:up == true ))<{{ fn.true }}>(( data.InternalNumberInventory.internal_number | internal_number:pwf.attributeValue == pwf.attributeValue ))<{{ fn.true }}><{{ fn.false }}>", "message": "A valid Directory Number for [{{ input.username }}] has not been selected." }, { "enabled": true, "attribute": "line1DN", "rule": "(( data.MultiVendorServiceDefinitions_DAT.noService | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile | direction:up == true ))<{{ fn.true }}>(( fn.list_contain pwf.attributeValue,macro.hybridUserLineList == true ))<{{ fn.true }}>(( data.User.mvs_extensions.*.line | mvs_extensions.*.line:pwf.attributeValue == pwf.attributeValue ))<{{ fn.false }}>(( fn.list_contain pwf.attributeValue,macro.MS-Teams-getUserCucmLines == true ))<{{ fn.true }}> (( fn.contains macro.Multivendor_Validate_E164_LineUri_format,macro.Multivendor_Validate_CsolUser-LineURI == true )) <{{ fn.true }}> (( data.InternalNumberInventory.status | internal_number:pwf.attributeValue == Available ))<{{ fn.true }}><{{ fn.false }}>", "message": "The selected Directory Number - [{{ pwf.attributeValue }}] is Used." }, { "enabled": true, "attribute": "line1DN", "rule": "(( data.MultiVendorServiceDefinitions_DAT.noService | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile | direction:up == true ))<{{ fn.true }}>(( data.InternalNumberInventory.status | internal_number:pwf.attributeValue == Reserved ))<{{ fn.false }}>(( fn.list_in pwf.attributeValue, data.InternalNumberInventory.internal_number | extra1:/Reserved/i == True ))<{{ fn.false }}><{{ fn.true }}>", "message": "The selected Directory Number - [{{ pwf.attributeValue }}] is Reserved." }, { "enabled": true, "attribute": "entitlement_profile", "rule": "(( fn.is_none_or_empty macro.Multivendor_Validate_GetEpFromServiceType == false ))<{{ fn.true }}>(( fn.list_in pwf.attributeValue, data.HcsEntitlementProfileDAT.__bkey || direction:up == True ))<{{ fn.true }}><{{ fn.false }}>", "message": "A valid Entitlement Profile for [{{ input.username }}] has not been set." }, { "enabled": true, "attribute": "qagroup_name", "rule": "(( fn.is_none_or_empty macro.Multivendor_Validate_GetGroupFromServiceType == false ))<{{ fn.true }}>(( input.qagroup_name == pwf.unset ))<{{ fn.false }}>(( fn.is_none_or_empty pwf.attributeValue == false ))<{{ fn.true }}><{{ fn.false }}>", "message": "A valid Quick Add Group for [{{ input.username }}] has not been set." }, { "enabled": true, "attribute": "username", "rule": "(( macro.global_setting_map_upn_from_cucm_useridentity == fn.true ))<{{ fn.true }}>(( fn.is_none_or_empty macro.Multivendor_Validate_GetMs365Username == fn.true ))<{{ fn.false }}><{{ fn.true }}>", "message": "[{{ input.username }}] is not associated with a Microsoft 365 user account." }, { "enabled": true, "attribute": "username", "rule": "(( macro.global_setting_map_upn_from_cucm_useridentity == fn.true ))<{{ fn.true }}>(( fn.is_none_or_empty macro.Multivendor_Validate_GetMsTeamsUsername == fn.true ))<{{ fn.false }}><{{ fn.true }}>", "message": "[{{ input.username }}] is not associated with a Microsoft Teams Online user account." }, { "enabled": true, "attribute": "line1E164", "rule": "(( macro.global_setting_map_upn_from_cucm_useridentity == fn.true ))<{{ fn.true }}>(( data.MultiVendorServiceDefinitions_DAT.noService | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile | direction:up == fn.true ))<{{ fn.true }}>(( fn.is_none_or_empty pwf.attributeValue == true ))<{{ fn.true }}>(( fn.list_contain macro.MS-Teams-GetUserCsolUpnFromUsername,macro.MS-Teams-GetUserNameFromLineURI == true ))<{{ fn.true }}>(( macro.MS-Teams-GetUserNameFromLineURI == fn.list_empty ))<{{ fn.true }}><{{ fn.false }}>", "message": "LineURI is associated with another user [{{ fn.one macro.MS-Teams-GetUserNameFromLineURI }}]" }, { "enabled": true, "attribute": "MultiVendorServiceType", "rule": "(( macro.global_setting_map_upn_from_cucm_useridentity == fn.true ))<{{ fn.true }}>(( fn.list_contain MicrosoftSubscriberQas,macro.Multivendor_ValidateHybridViewList == fn.false ))<{{ fn.true }}>(( fn.list_contain PhoneSystem,macro.ValidateMicrosoftTeamsServices == fn.true ))<{{ fn.true }}><{{ fn.false }}>", "message": "User does not have the required license", "hierarchy": "{{ data.BaseCustomerDAT.Hierarchy || direction:up }}" }, { "enabled": true, "attribute": "MultiVendorServiceType", "rule": "(( fn.list_contain MicrosoftSubscriberQas,macro.Multivendor_ValidateHybridViewList == false ))<{{ fn.true }}>(( fn.is_none_or_empty macro.Multivendor_Validate_GetTenantDialplanFromSdd == false ))<{{ fn.true }}><{{ fn.false }}>", "message": "Tenant Dialplan must be set in site defaults doc" }, { "enabled": true, "attribute": "MultiVendorServiceType", "rule": "(( macro.global_setting_map_upn_from_cucm_useridentity == fn.true ))<{{ fn.true }}>(( fn.list_contain MicrosoftSubscriberQas,data.MultiVendorServiceDefinitions_DAT.qasData.*.viewName | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile == fn.false ))<{{ fn.true }}>(( fn.is_none_or_empty macro.Multivendor_Validate_GetMsTeamsUsername == fn.false ))<{{ fn.true }}><{{ fn.false }}>", "message": "User does not have MS Teams username set" }, { "enabled": true, "attribute": "MultiVendorServiceType", "rule": "(( macro.global_setting_map_upn_from_cucm_useridentity == fn.true ))<{{ fn.true }}>(( data.SiteDefaultsDoc.allowMsolUserAdd || direction:local == fn.true ))<{{ fn.true }}>(( fn.list_contain MicrosoftSubscriberQas,data.MultiVendorServiceDefinitions_DAT.qasData.*.viewName | serviceType:macro.Multivendor_ValidateHybridServiceTypeFromServiceProfile == fn.false ))<{{ fn.true }}>(( fn.is_none_or_empty macro.Multivendor_Validate_GetMs365Username == fn.false ))<{{ fn.true }}><{{ fn.false }}>", "message": "User does not have MS O365 username set" } ], "pkid": "650fe48084eaf2a1ce63915f" }, "meta": { "model_type": "data/ValidationRules", "summary_attrs": [ { "name": "modelName", "title": "Model Name" }, { "name": "operation", "title": "Operation" }, { "name": "description", "title": "Description" }, { "name": "hierarchy_friendly_name", "title": "Located At", "allow_filtering": true } ], "tagged_versions": [], "tags": [ "V4UC", "ba_CommonOverlay" ], "title": "view/HybridMultiVendorVIEW - create", "business_key": { "unique": [ "modelName", "operation" ], "hierarchy": true }, "api_version": "21.2", "cached": false, "references": { "device": [ { "href": "", "pkid": "" } ], "owner": [ { "pkid": "" } ], "parent": [ { "href": "/api/data/HierarchyNode/5ad5bacbaffa9343e4d93e01", "pkid": "5ad5bacbaffa9343e4d93e01" } ], "foreign_key": [], "children": [], "self": [ { "href": "/api/data/ValidationRules/650fe48084eaf2a1ce63915e/", "pkid": "650fe48084eaf2a1ce63915e" } ] }, "path": [ "6t0ggef2c0deab00hb595101", "5ad5bacbaffa9343e4d93e01", "650fe48084eaf2a1ce63915e" ], "schema_version": "1.1", "actions": [ { "update": { "method": "PUT", "class": "update", "href": "/api/data/ValidationRules/650fe48084eaf2a1ce63915e/?hierarchy=[hierarchy]", "support_async": true, "title": "Modify" } }, { "remove": { "method": "DELETE", "class": "delete", "href": "/api/data/ValidationRules/650fe48084eaf2a1ce63915e/?hierarchy=[hierarchy]", "support_async": true, "title": "Delete" } }, { "export": { "method": "GET", "class": "export", "href": "/api/data/ValidationRules/650fe48084eaf2a1ce63915e/export/?hierarchy=[hierarchy]", "support_async": false, "title": "Export", "view": "/api/view/ExportData/add/?auth_token=[authtoken], "submit": "payload" } }, { "get": { "method": "GET", "class": "get", "href": "/api/data/ValidationRules/650fe48084eaf2a1ce63915e/?hierarchy=[hierarchy]", "support_async": false, "title": "Get" } } ] }, "pkid": "650fe48084eaf2a1ce63915e" }
Task | Call | URL | Parameters | Payload |
---|---|---|---|---|
Modify | PUT | /api/data/ValidationRules/[pkid] | hierarchy=[hierarchy] | (For payload specification) |
For Bulk modification, refer to the Bulk Modify section.
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Delete | DELETE | /api/data/ValidationRules/[pkid] | hierarchy=[hierarchy] |
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Get a selected [export_format] of the schema and a single instance with [pkid] of data/ValidationRules; optionally with tag_version at [version] and Configuration Template as [configtemplate]. | GET | /api/data/ValidationRules/[pkid]/export |
|
The response is an attachment. Refer to the list below. |
For export_format=raw_xlsx, the response is a "raw" MS Excel spreadsheet with columns corresponding to the JSON format export and a response format:
Content-Disposition: attachment; filename=<resource_type>_<resource_name>_exportedsheet_CCYY-MM-DD_HH-MM-SS.xlsx Content-Language:en Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
For export_format=xlsx, the response is a MS Excel spreadsheet, formatted to show all columns and a response format:
Content-Disposition: attachment; filename=<resource_type>_<resource_name>_exportedsheet_formatted_CCYY-MM-DD_HH-MM-SS.xlsx Content-Language:en Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
For export_format=json, the response is a time stamped zip file of data in JSON and a response format:
Content-Disposition: attachment; filename=export_2013-05-17_14:20:19.186444.json.zip Content-Language:en Content-Type:application/x-zip
The XLSX format can be used to bulk load instances of data/ValidationRules and the JSON format can be used to import instances of data/ValidationRules.
For Bulk Export, refer to the Bulk Export section.
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Get | GET | /api/data/ValidationRules/[pkid] | hierarchy=[hierarchy] | The data/ValidationRules instance with [pkid]. |