[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": { "rules": { "items": { "type": "object", "properties": { "hierarchy": { "type": "string", "description": "Optional macro to provide a hierarchy at which to evaluate the rule. If unset, the execution hierarchy will be used.", "title": "Macro Evaluation Hierarchy" }, "attribute": { "type": "string", "title": "Attribute" }, "message": { "type": "string", "title": "Message" }, "rule": { "title": "Rule", "type": "string", "description": "Macro that evaluates to true when required condition is met", "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" } ] } } }, "required": true, "type": "array", "title": "Rules" }, "operation": { "title": "Operation", "type": "string", "choices": [ { "value": "create", "title": "Create" }, { "value": "update", "title": "Update" } ] }, "modelName": { "type": "string", "title": "Model Name" }, "description": { "type": "string", "title": "Description" }, "refreshModels": { "items": { "type": "object", "properties": { "attribute": { "type": "string", "description": "The attribute in the target model to match.", "title": "Find Attribute" }, "modelName": { "type": "string", "title": "Model Name" }, "value": { "type": "string", "description": "The value of the attribute in the target model to match.", "title": "Find Value" } } }, "type": "array", "description": "Refresh data instances prior to applying validation rules. This ensures current data is evaluated.", "title": "Refresh Data" } }, "schema_version": "0.7" }
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)
{ "operations": [ "field_display_policy", "configuration_template", "help", "get", "export_bulkload_template", "list", "update", "remove", "move", "transform", "add", "export", "migration", "bulk_update_form" ], "pagination": { "direction": "asc", "order_by": "modelName", "maximum_limit": 2000, "skip": 0, "current": "/api/data/ValidationRules/?skip=0&limit=3&order_by=modelName&direction=asc&traversal=default", "limit": 3, "total_limit": null, "total": 1 }, "meta": { "tags": [], "cached": true, "title": "", "business_key": { "hierarchy": true, "unique": [ "modelName", "operation" ] }, "schema_version": "0.7", "references": { "device": [ { "pkid": "", "href": "" } ], "children": [], "parent": [ { "pkid": "6t0ggef2c0deab00hb595101", "href": "/api/data/HierarchyNode/6t0ggef2c0deab00hb595101" } ], "foreign_key": [] }, "actions": [ { "add": { "support_async": false, "class": "add", "href": "/api/data/ValidationRules/add/?hierarchy=[hierarchy]", "method": "GET", "title": "Add" } }, { "remove": { "support_async": true, "class": "delete", "href": "/api/data/ValidationRules/?hierarchy=[hierarchy]", "method": "DELETE", "title": "Delete" } }, { "export": { "title": "Export", "support_async": false, "submit": "payload", "class": "export", "href": "/api/data/ValidationRules/export/?hierarchy=[hierarchy]", "method": "POST", "view": "/api/view/ExportData/add/?auth_token=[authtoken] } }, { "export_bulkload_template": { "support_async": false, "class": "bulkload_template", "href": "/api/data/ValidationRules/export_bulkload_template/?hierarchy=[hierarchy]", "method": "POST", "title": "Export Bulk Load Template" } }, { "field_display_policy": { "support_async": false, "class": "display_policy", "href": "/api/data/ValidationRules/field_display_policy/?hierarchy=[hierarchy]", "method": "GET", "title": "Field Display Policy" } }, { "list": { "support_async": false, "class": "list", "href": "/api/data/ValidationRules/?hierarchy=[hierarchy]", "method": "GET", "title": "List" } } ], "model_type": "data/ValidationRules", "model_specific_actions": [ "add", "export", "export_bulkload_template", "field_display_policy", "get", "list", "remove", "update" ], "summary_attrs": [ { "name": "modelName", "title": "Model Name" }, { "name": "operation", "title": "Operation" }, { "name": "description", "title": "Description" }, { "allow_filtering": true, "name": "hierarchy_friendly_name", "title": "Located At" } ], "api_version": "21.2", "tagged_versions": [] }, "resources": [ { "pkid": "6260ced7a96ee2847bf68f98", "meta": { "tags": [ "V4UC", "ba_CommonOverlay" ], "cached": true, "title": "view/HybridMultiVendorVIEW - create", "business_key": { "hierarchy": true, "unique": [ "modelName", "operation" ] }, "schema_version": "0.7", "summary": "false", "references": { "device": [ { "pkid": "", "href": "" } ], "owner": [ { "pkid": "" } ], "self": [ { "pkid": "6260ced7a96ee2847bf68f98", "href": "/api/data/ValidationRules/6260ced7a96ee2847bf68f98/" } ], "parent": [ { "pkid": "5df35e48ce894e0012b345a1", "href": "/api/data/HierarchyNode/5df35e48ce894e0012b345a1" } ], "foreign_key": [] }, "actions": [ { "update": { "support_async": true, "class": "update", "href": "/api/data/ValidationRules/6260ced7a96ee2847bf68f98/", "method": "PUT", "title": "Modify" } }, { "remove": { "support_async": true, "class": "delete", "href": "/api/data/ValidationRules/6260ced7a96ee2847bf68f98/", "method": "DELETE", "title": "Delete" } }, { "export": { "title": "Export", "support_async": false, "submit": "payload", "class": "export", "href": "/api/data/ValidationRules/6260ced7a96ee2847bf68f98/export/", "method": "GET", "view": "/api/view/ExportData/add/" } }, { "get": { "support_async": false, "class": "get", "href": "/api/data/ValidationRules/6260ced7a96ee2847bf68f98/", "method": "GET", "title": "Get" } } ], "model_type": "data/ValidationRules", "path": [ "6t0ggef2c0deab00hb595101", "5df35e48ce894e0012b345a1", "6260ced7a96ee2847bf68f98" ], "summary_attrs": [ { "name": "modelName", "title": "Model Name" }, { "name": "operation", "title": "Operation" }, { "name": "description", "title": "Description" }, { "allow_filtering": true, "name": "hierarchy_friendly_name", "title": "Located At" } ], "api_version": "21.2", "tagged_versions": [] }, "data": { "modelName": "view/HybridMultiVendorVIEW", "description": "MVS validation rules", "refreshModels": [ { "attribute": "UserPrincipalName", "modelName": "device/msgraph/MsolUser", "value": "{{ data.User.username_ms_365 | username:input.username }}" } ], "rules": [ { "attribute": "username", "message": "Hybrid Service Type - [{{ input.MultiVendorServiceType }}] does not exist.", "rule": "(( input.MultiVendorServiceType == data.SubscriberProfile.name | name:input.MultiVendorServiceType,hybrid:fn.true ))<{{ fn.true }}><{{ fn.false }}>" }, { "attribute": "username", "message": "[{{ input.username }}] data/User cannot be found.", "rule": "(( fn.lower input.username == fn.lower macro.Multivendor_Validate_GetDataUsername )) <{{ fn.true }}> <{{ fn.false }}>" }, { "attribute": "line1DN", "message": "A valid Directory Number for [{{ input.username }}] has not been selected.", "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 }}>" }, { "attribute": "line1DN", "message": "A valid Directory Number for [{{ input.username }}] has not been selected.", "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 }}>" }, { "attribute": "line1DN", "message": "The selected Directory Number - [{{ pwf.attributeValue }}] is Used.", "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 }}>" }, { "attribute": "line1DN", "message": "The selected Directory Number - [{{ pwf.attributeValue }}] is Reserved.", "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 }}>" }, { "attribute": "entitlement_profile", "message": "A valid Entitlement Profile for [{{ input.username }}] has not been set.", "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 }}>" }, { "attribute": "qagroup_name", "message": "A valid Quick Add Group for [{{ input.username }}] has not been set.", "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 }}>" }, { "attribute": "username", "message": "[{{ input.username }}] is not associated with a Microsoft 365 user account.", "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 }}>" }, { "attribute": "username", "message": "[{{ input.username }}] is not associated with a Microsoft Teams Online user account.", "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 }}>" }, { "attribute": "line1E164", "message": "LineURI is associated with another user [{{ fn.one macro.MS-Teams-GetUserNameFromLineURI }}]", "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 }}>" }, { "hierarchy": "{{ data.BaseCustomerDAT.Hierarchy || direction:up }}", "attribute": "MultiVendorServiceType", "message": "User does not have the required license", "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 }}>" }, { "attribute": "MultiVendorServiceType", "message": "Tenant Dialplan must be set in site defaults doc", "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 }}>" }, { "attribute": "MultiVendorServiceType", "message": "User does not have MS Teams username set", "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 }}>" }, { "attribute": "MultiVendorServiceType", "message": "User does not have MS O365 username set", "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 }}>" } ], "pkid": "6260ced7a96ee2847bf68f99", "operation": "create", "hierarchy_friendly_name": "hcs (Hcs)", "hierarchy_path": "sys.hcs" } } ] }
(Show the first instance)
{ "pkid": "6260ced7a96ee2847bf68f98", "meta": { "tags": [ "V4UC", "ba_CommonOverlay" ], "cached": false, "title": "view/HybridMultiVendorVIEW - create", "business_key": { "hierarchy": true, "unique": [ "modelName", "operation" ] }, "schema_version": "0.7", "references": { "parent": [ { "pkid": "5df35e48ce894e0012b345a1", "href": "/api/data/HierarchyNode/5df35e48ce894e0012b345a1" } ], "self": [ { "pkid": "6260ced7a96ee2847bf68f98", "href": "/api/data/ValidationRules/6260ced7a96ee2847bf68f98/" } ], "foreign_key": [], "device": [ { "pkid": "", "href": "" } ], "owner": [ { "pkid": "" } ], "children": [] }, "actions": [ { "update": { "support_async": true, "class": "update", "href": "/api/data/ValidationRules/6260ced7a96ee2847bf68f98/?hierarchy=[hierarchy]", "method": "PUT", "title": "Modify" } }, { "remove": { "support_async": true, "class": "delete", "href": "/api/data/ValidationRules/6260ced7a96ee2847bf68f98/?hierarchy=[hierarchy]", "method": "DELETE", "title": "Delete" } }, { "export": { "title": "Export", "support_async": false, "submit": "payload", "class": "export", "href": "/api/data/ValidationRules/6260ced7a96ee2847bf68f98/export/?hierarchy=[hierarchy]", "method": "GET", "view": "/api/view/ExportData/add/?auth_token=[authtoken] } }, { "get": { "support_async": false, "class": "get", "href": "/api/data/ValidationRules/6260ced7a96ee2847bf68f98/?hierarchy=[hierarchy]", "method": "GET", "title": "Get" } } ], "model_type": "data/ValidationRules", "path": [ "6t0ggef2c0deab00hb595101", "5df35e48ce894e0012b345a1", "6260ced7a96ee2847bf68f98" ], "summary_attrs": [ { "name": "modelName", "title": "Model Name" }, { "name": "operation", "title": "Operation" }, { "name": "description", "title": "Description" }, { "allow_filtering": true, "name": "hierarchy_friendly_name", "title": "Located At" } ], "api_version": "21.2", "tagged_versions": [] }, "data": { "modelName": "view/HybridMultiVendorVIEW", "description": "MVS validation rules", "refreshModels": [ { "attribute": "UserPrincipalName", "modelName": "device/msgraph/MsolUser", "value": "{{ data.User.username_ms_365 | username:input.username }}" } ], "rules": [ { "attribute": "username", "message": "Hybrid Service Type - [{{ input.MultiVendorServiceType }}] does not exist.", "rule": "(( input.MultiVendorServiceType == data.SubscriberProfile.name | name:input.MultiVendorServiceType,hybrid:fn.true ))<{{ fn.true }}><{{ fn.false }}>" }, { "attribute": "username", "message": "[{{ input.username }}] data/User cannot be found.", "rule": "(( fn.lower input.username == fn.lower macro.Multivendor_Validate_GetDataUsername )) <{{ fn.true }}> <{{ fn.false }}>" }, { "attribute": "line1DN", "message": "A valid Directory Number for [{{ input.username }}] has not been selected.", "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 }}>" }, { "attribute": "line1DN", "message": "A valid Directory Number for [{{ input.username }}] has not been selected.", "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 }}>" }, { "attribute": "line1DN", "message": "The selected Directory Number - [{{ pwf.attributeValue }}] is Used.", "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 }}>" }, { "attribute": "line1DN", "message": "The selected Directory Number - [{{ pwf.attributeValue }}] is Reserved.", "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 }}>" }, { "attribute": "entitlement_profile", "message": "A valid Entitlement Profile for [{{ input.username }}] has not been set.", "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 }}>" }, { "attribute": "qagroup_name", "message": "A valid Quick Add Group for [{{ input.username }}] has not been set.", "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 }}>" }, { "attribute": "username", "message": "[{{ input.username }}] is not associated with a Microsoft 365 user account.", "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 }}>" }, { "attribute": "username", "message": "[{{ input.username }}] is not associated with a Microsoft Teams Online user account.", "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 }}>" }, { "attribute": "line1E164", "message": "LineURI is associated with another user [{{ fn.one macro.MS-Teams-GetUserNameFromLineURI }}]", "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 }}>" }, { "hierarchy": "{{ data.BaseCustomerDAT.Hierarchy || direction:up }}", "attribute": "MultiVendorServiceType", "message": "User does not have the required license", "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 }}>" }, { "attribute": "MultiVendorServiceType", "message": "Tenant Dialplan must be set in site defaults doc", "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 }}>" }, { "attribute": "MultiVendorServiceType", "message": "User does not have MS Teams username set", "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 }}>" }, { "attribute": "MultiVendorServiceType", "message": "User does not have MS O365 username set", "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 }}>" } ], "pkid": "6260ced7a96ee2847bf68f99", "operation": "create" } }
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]. |