[Index]
Describes a Device Model which maps to API endpoints of some external application (device)
Model ref.: data/DeviceModel
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": { "version": { "required": true, "type": "string", "description": "Version of this model", "title": "Version" }, "name": { "required": true, "type": "string", "description": "Name of this Device Model and resulting model type i.e. device/<Device Type>/<Name>", "title": "Name" }, "documentation": { "type": "string", "description": "Documentation text for this model", "title": "Documentation" }, "Meta": { "properties": { "operations": { "default": [ "list", "get", "add", "update", "remove", "move", "clone", "export", "export_bulkload_template", "bulk_update_form", "configuration_template", "field_display_policy", "help", "migration", "transform", "tag", "tag_version" ], "items": { "type": "string", "choices": [ { "value": "list", "title": "List" }, { "value": "get", "title": "Get" }, { "value": "add", "title": "Add" }, { "value": "update", "title": "Update" }, { "value": "remove", "title": "Remove" }, { "value": "move", "title": "Move" }, { "value": "clone", "title": "Clone" }, { "value": "bulk_update_form", "title": "Bulk Update" }, { "value": "configuration_template", "title": "Configuration Template" }, { "value": "field_display_policy", "title": "Field Display Policy" }, { "value": "execute", "title": "Execute" }, { "value": "export", "title": "Export" }, { "value": "export_bulkload_template", "title": "Export Bulk Load Template" }, { "value": "help", "title": "Help" }, { "value": "import", "title": "Import" }, { "value": "migration", "title": "Migration Template" }, { "value": "transform", "title": "Transform Template" }, { "value": "tag", "title": "Tag" }, { "value": "tag_version", "title": "Tag Version" }, { "value": "test_connect", "title": "Test Connection" } ] }, "type": "array", "description": "List of supported operations", "title": "Operations" }, "list_operations": { "default": [ "list" ], "items": { "type": "string", "choices": [ { "value": "list", "title": "List" }, { "value": "get", "title": "Get" }, { "value": "add", "title": "Add" }, { "value": "update", "title": "Update" }, { "value": "remove", "title": "Remove" }, { "value": "move", "title": "Move" }, { "value": "clone", "title": "Clone" }, { "value": "bulk_update_form", "title": "Bulk Update" }, { "value": "configuration_template", "title": "Configuration Template" }, { "value": "field_display_policy", "title": "Field Display Policy" }, { "value": "execute", "title": "Execute" }, { "value": "export", "title": "Export" }, { "value": "export_bulkload_template", "title": "Export Bulk Load Template" }, { "value": "help", "title": "Help" }, { "value": "import", "title": "Import" }, { "value": "migration", "title": "Migration Template" }, { "value": "transform", "title": "Transform Template" }, { "value": "tag", "title": "Tag" }, { "value": "tag_version", "title": "Tag Version" }, { "value": "test_connect", "title": "Test Connection" } ] }, "type": "array", "description": "List of supported list operations", "title": "List Operations" }, "api_operations": { "items": { "type": "object", "properties": { "pre_request_calls": { "items": { "type": "string" }, "type": "array", "description": "List of API calls to make before making this request", "title": "Pre-request Calls" }, "target": { "description": "Target of this operation", "title": "Target", "default": "HTTP", "required": false, "choices": [ { "value": "HTTP", "title": "HTTP" }, { "value": "Browser", "title": "Browser" }, { "value": "SOAP", "title": "SOAP" }, { "value": "Socket", "title": "Socket" }, { "value": "winrm", "title": "winrm" } ], "type": "string" }, "variables": { "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Context variable name. This will appear in the context as 'variables.<name>'", "title": "Name" }, "value": { "type": "string", "description": "Value of this variable. This field supports Macros", "title": "Value" } } }, "type": "array", "description": "List of context variables availble to template rendering (supports Macros)", "title": "Variables" }, "uri": { "type": "string", "description": "URI for the API request", "title": "URI" }, "response_format": { "description": "Response format", "title": "Response Format", "default": "JSON", "required": false, "choices": [ { "value": "JSON", "title": "JSON" }, { "value": "XML", "title": "XML" } ], "type": "string" }, "request_headers": { "items": { "type": "object", "properties": { "name": { "required": true, "type": "string", "description": "Name of HTTP request header, e.g. Accept.", "title": "Name" }, "value": { "required": true, "type": "string", "description": "Value of HTTP request header, e.g. text/plain.", "title": "Value" } } }, "type": "array", "description": "HTTP request headers to send with API operation request. Takes precedence over default request headers specified on related Connection Parameters Type instance.", "title": "Request Headers" }, "post_request_calls": { "items": { "type": "string" }, "type": "array", "description": "List of API calls to make after making this request", "title": "Post-request Calls" }, "http_method": { "default": "get", "choices": [ { "value": "GET", "title": "GET" }, { "value": "POST", "title": "POST" }, { "value": "PATCH", "title": "PATCH" }, { "value": "PUT", "title": "PUT" }, { "value": "DELETE", "title": "DELETE" } ], "type": "string", "description": "HTTP method for API request", "title": "HTTP Method" }, "request_template": { "type": "string", "description": "Jinja template for API request. Maps system schema to external application schema.", "title": "Request Template" }, "response_code_template": { "type": "string", "description": "Jinja template for mapping API endpoint specific error/status response", "title": "Response Code Template" }, "action": { "required": true, "type": "string", "description": "Name of the device model operation for e.g. add", "title": "Action" }, "response_template": { "type": "string", "description": "Jinja template for API response. Maps external application schema to system schema.", "title": "Response Template" }, "request_format": { "description": "Request format", "title": "Request Format", "default": "JSON", "required": false, "choices": [ { "value": "JSON", "title": "JSON" }, { "value": "XML", "title": "XML" }, { "value": "string", "title": "string" } ], "type": "string" }, "response_handlers": { "items": { "type": "object", "properties": { "type": { "choices": [ { "value": "backoff_retry", "title": "Backoff & Retry" }, { "value": "failure_duplicate", "title": "Failure - Duplicate" } ], "required": true, "type": "string", "description": "Response handler type to execute if specified condition evaluates to True, e.g. Backoff & Retry.", "title": "Type" }, "condition": { "required": true, "type": "string", "description": "Jinja template which if evaluation results in a value of True will cause the specified handler type to be executed, e.g. {{ status_code == 429 }}.", "title": "Condition" } } }, "type": "array", "description": "Handlers to execute on API responses. Only those response handlers' which condition evaluate to True are executed.", "title": "Response Handlers" } } }, "type": "array", "description": "List of API endpoint definitions as they map to model operations", "title": "API Operations" }, "summary_attrs": { "items": { "type": "string" }, "type": "array", "description": "Summary attributes for this model. This defines the data returned in API list requests.", "title": "Summary Attributes" }, "instance_operations": { "default": [ "get" ], "items": { "type": "string", "choices": [ { "value": "list", "title": "List" }, { "value": "get", "title": "Get" }, { "value": "add", "title": "Add" }, { "value": "update", "title": "Update" }, { "value": "remove", "title": "Remove" }, { "value": "move", "title": "Move" }, { "value": "clone", "title": "Clone" }, { "value": "bulk_update_form", "title": "Bulk Update" }, { "value": "configuration_template", "title": "Configuration Template" }, { "value": "field_display_policy", "title": "Field Display Policy" }, { "value": "execute", "title": "Execute" }, { "value": "export", "title": "Export" }, { "value": "export_bulkload_template", "title": "Export Bulk Load Template" }, { "value": "help", "title": "Help" }, { "value": "import", "title": "Import" }, { "value": "migration", "title": "Migration Template" }, { "value": "transform", "title": "Transform Template" }, { "value": "tag", "title": "Tag" }, { "value": "tag_version", "title": "Tag Version" }, { "value": "test_connect", "title": "Test Connection" } ] }, "type": "array", "description": "List of supported instance operations", "title": "Instance Operations" } }, "type": "object", "description": "Meta information for this Device Model", "title": "Meta Information" }, "device_type": { "required": true, "type": "string", "description": "Device type for e.g. device/facebook", "title": "Device Type" }, "schema": { "required": true, "type": "string", "description": "JSON schema of the model", "title": "Schema" }, "primary_key": { "required": true, "type": "string", "description": "This is the field returned by an add operation that uniquely identifies the created entity for e.g. id", "title": "Primary Key Field" } }, "schema_version": "1.3.6" }
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Get the GUI Add form. | GET | /api/data/DeviceModel/add/ |
|
The GUI Add form of data/DeviceModel 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/DeviceModel/ | 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/DeviceModel/ | hierarchy=[hierarchy] | {"hrefs":["/api/data/DeviceModel/[pkid1]", "/api/data/DeviceModel/[pkid2]", ...]} |
GET http://[host-proxy]/api/data/DeviceModel/?hierarchy=[hierarchy]&format=json
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Bulk Modify | GET | /api/data/DeviceModel/bulk_update/?schema=&schema_rules=true |
|
|
Task | Call | URL | Parameters | Payload |
---|---|---|---|---|
Bulk Modify | POST | /api/data/DeviceModel/bulk_update/ |
|
For example: {"data":{"name":"value"}, "meta":{}, "request_meta":{ "hrefs":["/api/v0/data/DeviceModel/[pkid1]", "/api/v0/data/DeviceModel/[pkid2]",...]}} |
GET http://[host-proxy]/api/data/DeviceModel/?hierarchy=[hierarchy]&format=json
Task | Call | URL | Parameters | Payload |
---|---|---|---|---|
Get a selected [export_format] of the schema and instances [pkid1], [pkid2],... of data/DeviceModel; optionally with tag_version at [version] and Configuration Template as [configtemplate]. | POST | /api/data/DeviceModel/export/ |
|
{ "hrefs":["/api/data/DeviceModel/[pkid1]", "/api/data/DeviceModel/[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/DeviceModel and the JSON format can be used to import instances of data/DeviceModel.
GET http://[host-proxy]/api/data/DeviceModel/?hierarchy=[hierarchy]
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Get a compressed format of the Bulk Load spreadsheet template for data/DeviceModel | POST | /api/data/DeviceModel/export_bulkload_template/ |
|
The response is an attachment of the format: filetype_bulkloadsheet.xlsx.gz |
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Configuration Template | GET | /api/data/DeviceModel/configuration_template/ | hierarchy=[hierarchy] |
|
POST http://[host-proxy]/api/data/ConfigurationTemplate/?hierarchy=[hierarchy]
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Field Display Policy | GET | /api/data/DeviceModel/field_display_policy/ | hierarchy=[hierarchy] |
|
POST http://[host-proxy]/api/data/FieldDisplayPolicy/?hierarchy=[hierarchy]
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Migration Template | GET | /api/data/DeviceModel/migration/ |
|
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
List | GET | /api/data/DeviceModel/ |
|
The data/DeviceModel schema and all instances as JSON. |
(The list will return 0 to 3 data/DeviceModel 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": "name", "maximum_limit": 2000, "skip": 0, "current": "/api/data/DeviceModel/?skip=0&limit=3&order_by=name&direction=asc&traversal=default", "limit": 3, "total_limit": null, "total": 192 }, "meta": { "tags": [], "cached": true, "title": "", "business_key": { "hierarchy": true, "unique": [ "name", "version", "device_type" ] }, "schema_version": "1.3.6", "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/DeviceModel/add/?hierarchy=[hierarchy]", "method": "GET", "title": "Add" } }, { "remove": { "support_async": true, "class": "delete", "href": "/api/data/DeviceModel/?hierarchy=[hierarchy]", "method": "DELETE", "title": "Delete" } }, { "bulk_update_form": { "support_async": false, "class": "update", "href": "/api/data/DeviceModel/bulk_update/?hierarchy=[hierarchy]&schema=&schema_rules=true", "method": "GET", "title": "Bulk Modify" } }, { "export": { "title": "Export", "support_async": false, "submit": "payload", "class": "export", "href": "/api/data/DeviceModel/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/DeviceModel/export_bulkload_template/?hierarchy=[hierarchy]", "method": "POST", "title": "Export Bulk Load Template" } }, { "tag": { "title": "Tag", "support_async": true, "method": "PATCH", "href": "/api/data/DeviceModel/+tag/?hierarchy=[hierarchy]", "class": "tag", "view": "/api/view/TagNameForm/add/?auth_token=[authtoken] } }, { "tag_version": { "title": "Tag Version", "support_async": true, "method": "PATCH", "href": "/api/data/DeviceModel/+tag_version/?hierarchy=[hierarchy]", "class": "tag_version", "view": "/api/view/TagVersionForm/add/?auth_token=[authtoken] } }, { "configuration_template": { "support_async": false, "class": "config", "href": "/api/data/DeviceModel/configuration_template/?hierarchy=[hierarchy]", "method": "GET", "title": "Configuration Template" } }, { "field_display_policy": { "support_async": false, "class": "display_policy", "href": "/api/data/DeviceModel/field_display_policy/?hierarchy=[hierarchy]", "method": "GET", "title": "Field Display Policy" } }, { "migration": { "support_async": false, "class": "migration", "href": "/api/data/DeviceModel/migration/?hierarchy=[hierarchy]", "method": "GET", "title": "Migration Template" } }, { "list": { "support_async": false, "class": "list", "href": "/api/data/DeviceModel/?hierarchy=[hierarchy]", "method": "GET", "title": "List" } }, { "help": { "support_async": false, "class": "help", "href": "/api/data/DeviceModel/help?hierarchy=[hierarchy]", "method": "GET", "title": "Help" } } ], "model_type": "data/DeviceModel", "model_specific_actions": [ "add", "bulk_update_form", "configuration_template", "export", "export_bulkload_template", "field_display_policy", "get", "help", "list", "clone", "migration", "remove", "tag", "tag_version", "update" ], "summary_attrs": [ { "name": "name", "title": "Name" }, { "name": "version", "title": "Version" }, { "name": "device_type", "title": "Device Type" }, { "allow_filtering": true, "name": "hierarchy_friendly_name", "title": "Located At" } ], "api_version": "21.2", "tagged_versions": [] }, "resources": [ { "pkid": "61b0e86d41e9336d6e1f6b39", "meta": { "tags": [ "oraclesbc", "V4UC", "ba_CommonOverlay" ], "cached": true, "title": "AccessControl - 1.2 - device/oraclesbc", "business_key": { "hierarchy": true, "unique": [ "name", "version", "device_type" ] }, "schema_version": "1.3.6", "summary": "false", "references": { "device": [ { "pkid": "", "href": "" } ], "owner": [ { "pkid": "" } ], "self": [ { "pkid": "61b0e86d41e9336d6e1f6b39", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/" } ], "parent": [ { "pkid": "6t0ggef2c0deab00hb595101", "href": "/api/data/HierarchyNode/6t0ggef2c0deab00hb595101" } ], "foreign_key": [] }, "actions": [ { "update": { "support_async": true, "class": "update", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/", "method": "PUT", "title": "Modify" } }, { "remove": { "support_async": true, "class": "delete", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/", "method": "DELETE", "title": "Delete" } }, { "clone": { "support_async": false, "class": "clone", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/clone/?schema=&schema_rules=true", "method": "GET", "title": "Clone" } }, { "export": { "title": "Export", "support_async": false, "submit": "payload", "class": "export", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/export/", "method": "GET", "view": "/api/view/ExportData/add/" } }, { "tag": { "title": "Tag", "support_async": true, "method": "PATCH", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/+tag/", "class": "tag", "view": "/api/view/TagNameForm/add/" } }, { "tag_version": { "title": "Tag Version", "support_async": true, "method": "PATCH", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/+tag_version/", "class": "tag_version", "view": "/api/view/TagVersionForm/add/" } }, { "get": { "support_async": false, "class": "get", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/", "method": "GET", "title": "Get" } }, { "help": { "support_async": false, "class": "help", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/help", "method": "GET", "title": "Help" } } ], "model_type": "data/DeviceModel", "path": [ "6t0ggef2c0deab00hb595101", "61b0e86d41e9336d6e1f6b39" ], "summary_attrs": [ { "name": "name", "title": "Name" }, { "name": "version", "title": "Version" }, { "name": "device_type", "title": "Device Type" }, { "allow_filtering": true, "name": "hierarchy_friendly_name", "title": "Located At" } ], "api_version": "21.2", "tagged_versions": [] }, "data": { "primary_key": "id", "pkid": "61b0e86d41e9336d6e1f6b3a", "version": "1.2", "name": "AccessControl", "Meta": { "operations": [ "list", "get", "add", "update", "remove", "move", "clone", "export", "export_bulkload_template", "bulk_update_form", "configuration_template", "field_display_policy", "help", "migration", "transform", "tag", "tag_version" ], "list_operations": [ "list", "add" ], "api_operations": [ { "target": "HTTP", "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements?elementType=access-control", "response_format": "XML", "response_template": "{%- set ns=namespace(output_list=[], items=input['response']['data']['configElement']) %}\n\n{%- if ns.items is mapping %}\n {%- set ns.items = [ns.items] %}\n{%- endif %}\n\n{%- for item in ns.items %}\n {%- set output={} %}\n {%- for attr in item.get('attribute', []) %}\n {%- set _=output.__setitem__(attr['name'], attr['value']) %}\n {%- endfor %}\n {%- set xyz = output['realm-id'] + ':' + output['source-address'] + ':' + output['application-protocol'] + ':' + output['transport-protocol'] %}\n {%- set _=output.__setitem__('id', xyz) %}\n\n {%- set _=ns.output_list.append(output) %}\n{%- endfor %}\n\n{{ ns.output_list|to_json }}", "http_method": "GET", "action": "list", "request_format": "JSON" }, { "target": "HTTP", "variables": [ { "name": "id", "value": "(( fn.is_none_or_empty pwf._context.input.id == False )) <{{ pwf._context.input.id }}> <{{ pwf._context.driver_parameters.pk }}>" }, { "name": "pk_parts", "value": "{{ fn.split pwf.id,: }}" }, { "name": "realmId", "value": "{{ fn.index pwf.pk_parts,0 }}" }, { "name": "sourceAddress", "value": "{{ fn.index pwf.pk_parts,1 }}" }, { "name": "applicationProtocol", "value": "{{ fn.index pwf.pk_parts,2 }}" }, { "name": "transportProtocol", "value": "{{ fn.index pwf.pk_parts,3 }}" } ], "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements?elementType=access-control&realm-id={{ variables.realmId }}&source-address={{ variables.sourceAddress }}&application-protocol={{ variables.applicationProtocol }}&transport-protocol={{ variables.transportProtocol }}", "response_format": "XML", "response_template": "{%- set ns=namespace(output={}, item=input['response']['data']['configElement']['attribute']) %}\n\n{%- if ns.item is mapping %}\n {%- set ns.item = [ns.item] %}\n{%- endif %}\n\n{%- for attr in ns.item %}\n {%- set _=ns.output.__setitem__(attr['name'], attr['value']) %}\n{%- endfor %}\n\n{{ ns.output | to_json }}", "http_method": "GET", "action": "get", "request_format": "JSON" }, { "pre_request_calls": [ "get_conf_lock" ], "target": "HTTP", "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements", "response_format": "XML", "response_template": "{%- set ns=namespace(output={'verified': false, 'saved': false, 'activated': false}, item=input['response']['data']['configElement']['attribute']) %}\n\n{%- if ns.item is mapping %}\n {%- set ns.item = [ns.item] %}\n{%- endif %}\n\n{%- for attr in ns.item %}\n {%- set _=ns.output.__setitem__(attr['name'], attr['value']) %}\n{%- endfor %}\n\n{%- for confirm_type, confirm_field_name in (('confirm_verify_conf', 'verified'), ('confirm_save_conf', 'saved'), ('confirm_activate_conf', 'activated')) %}\n {%- if request_data.get(confirm_type) %}\n {%- if request_data[confirm_type][0].get(confirm_field_name) == true %}\n {%- set _=ns.output.__setitem__(confirm_field_name, true) %}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n\n{{ ns.output | to_json }}", "post_request_calls": [ "verify_conf", "confirm_verify_conf", "save_conf", "confirm_save_conf", "activate_conf", "confirm_activate_conf", "release_conf_lock" ], "http_method": "PUT", "request_template": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<configElement>\n <elementType>access-control</elementType>\n{%- if input['realm-id'] %}\n <attribute>\n <name>realm-id</name>\n <value>{{ input['realm-id'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['description'] %}\n <attribute>\n <name>description</name>\n <value>{{ input['description'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['source-address'] %}\n <attribute>\n <name>source-address</name>\n <value>{{ input['source-address'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['destination-address'] %}\n <attribute>\n <name>destination-address</name>\n <value>{{ input['destination-address'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['application-protocol'] %}\n <attribute>\n <name>application-protocol</name>\n <value>{{ input['application-protocol'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['transport-protocol'] %}\n <attribute>\n <name>transport-protocol</name>\n <value>{{ input['transport-protocol'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['access'] %}\n <attribute>\n <name>access</name>\n <value>{{ input['access'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['average-rate-limit'] %}\n <attribute>\n <name>average-rate-limit</name>\n <value>{{ input['average-rate-limit'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['minimum-reserved-bandwidth'] %}\n <attribute>\n <name>minimum-reserved-bandwidth</name>\n <value>{{ input['minimum-reserved-bandwidth'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['trust-level'] %}\n <attribute>\n <name>trust-level</name>\n <value>{{ input['trust-level'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['invalid-signal-threshold'] %}\n <attribute>\n <name>invalid-signal-threshold</name>\n <value>{{ input['invalid-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['maximum-signal-threshold'] %}\n <attribute>\n <name>maximum-signal-threshold</name>\n <value>{{ input['maximum-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['untrusted-signal-threshold'] %}\n <attribute>\n <name>untrusted-signal-threshold</name>\n <value>{{ input['untrusted-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['deny-period'] %}\n <attribute>\n <name>deny-period</name>\n <value>{{ input['deny-period'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['nat-trust-threshold'] %}\n <attribute>\n <name>nat-trust-threshold</name>\n <value>{{ input['nat-trust-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['max-endpoints-per-nat'] %}\n <attribute>\n <name>max-endpoints-per-nat</name>\n <value>{{ input['max-endpoints-per-nat'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['nat-invalid-message-threshold'] %}\n <attribute>\n <name>nat-invalid-message-threshold</name>\n <value>{{ input['nat-invalid-message-threshold'] }}</value>\n </attribute>\n{%- endif %}\n</configElement>", "action": "update", "request_format": "JSON" }, { "pre_request_calls": [ "get_conf_lock" ], "target": "HTTP", "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements", "response_format": "XML", "response_template": "{%- set ns=namespace(output={'verified': false, 'saved': false, 'activated': false}, item=input['response']['data']['configElement']['attribute']) %}\n\n{%- if ns.item is mapping %}\n {%- set ns.item = [ns.item] %}\n{%- endif %}\n\n{%- for attr in ns.item %}\n {%- set _=ns.output.__setitem__(attr['name'], attr['value']) %}\n{%- endfor %}\n\n{%- set xyz = ns.output['realm-id'] + ':' + ns.output['source-address'] + ':' + ns.output['application-protocol'] + ':' + ns.output['transport-protocol'] %}\n{%- set _=ns.output.__setitem__('id', xyz) %}\n\n{%- for confirm_type, confirm_field_name in (('confirm_verify_conf', 'verified'), ('confirm_save_conf', 'saved'), ('confirm_activate_conf', 'activated')) %}\n {%- if request_data.get(confirm_type) %}\n {%- if request_data[confirm_type][0].get(confirm_field_name) == true %}\n {%- set _=ns.output.__setitem__(confirm_field_name, true) %}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n\n{{ ns.output | to_json }}", "post_request_calls": [ "verify_conf", "confirm_verify_conf", "save_conf", "confirm_save_conf", "activate_conf", "confirm_activate_conf", "release_conf_lock" ], "http_method": "POST", "request_template": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<configElement>\n <elementType>access-control</elementType>\n{%- if input['realm-id'] %}\n <attribute>\n <name>realm-id</name>\n <value>{{ input['realm-id'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['description'] %}\n <attribute>\n <name>description</name>\n <value>{{ input['description'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['source-address'] %}\n <attribute>\n <name>source-address</name>\n <value>{{ input['source-address'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['destination-address'] %}\n <attribute>\n <name>destination-address</name>\n <value>{{ input['destination-address'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['application-protocol'] %}\n <attribute>\n <name>application-protocol</name>\n <value>{{ input['application-protocol'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['transport-protocol'] %}\n <attribute>\n <name>transport-protocol</name>\n <value>{{ input['transport-protocol'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['access'] %}\n <attribute>\n <name>access</name>\n <value>{{ input['access'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['average-rate-limit'] %}\n <attribute>\n <name>average-rate-limit</name>\n <value>{{ input['average-rate-limit'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['minimum-reserved-bandwidth'] %}\n <attribute>\n <name>minimum-reserved-bandwidth</name>\n <value>{{ input['minimum-reserved-bandwidth'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['trust-level'] %}\n <attribute>\n <name>trust-level</name>\n <value>{{ input['trust-level'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['invalid-signal-threshold'] %}\n <attribute>\n <name>invalid-signal-threshold</name>\n <value>{{ input['invalid-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['maximum-signal-threshold'] %}\n <attribute>\n <name>maximum-signal-threshold</name>\n <value>{{ input['maximum-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['untrusted-signal-threshold'] %}\n <attribute>\n <name>untrusted-signal-threshold</name>\n <value>{{ input['untrusted-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['deny-period'] %}\n <attribute>\n <name>deny-period</name>\n <value>{{ input['deny-period'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['nat-trust-threshold'] %}\n <attribute>\n <name>nat-trust-threshold</name>\n <value>{{ input['nat-trust-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['max-endpoints-per-nat'] %}\n <attribute>\n <name>max-endpoints-per-nat</name>\n <value>{{ input['max-endpoints-per-nat'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['nat-invalid-message-threshold'] %}\n <attribute>\n <name>nat-invalid-message-threshold</name>\n <value>{{ input['nat-invalid-message-threshold'] }}</value>\n </attribute>\n{%- endif %}\n</configElement>", "action": "add", "request_format": "JSON" }, { "pre_request_calls": [ "get_conf_lock" ], "target": "HTTP", "variables": [ { "name": "id", "value": "(( fn.is_none_or_empty pwf._context.input.id == False )) <{{ pwf._context.input.id }}> <{{ pwf._context.driver_parameters.pk }}>" }, { "name": "pk_parts", "value": "{{ fn.split pwf.id,: }}" }, { "name": "realmId", "value": "{{ fn.index pwf.pk_parts,0 }}" }, { "name": "sourceAddress", "value": "{{ fn.index pwf.pk_parts,1 }}" }, { "name": "applicationProtocol", "value": "{{ fn.index pwf.pk_parts,2 }}" }, { "name": "transportProtocol", "value": "{{ fn.index pwf.pk_parts,3 }}" } ], "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements?elementType=access-control&realm-id={{ variables.realmId }}&source-address={{ variables.sourceAddress }}&application-protocol={{ variables.applicationProtocol }}&transport-protocol={{ variables.transportProtocol }}", "response_format": "XML", "post_request_calls": [ "verify_conf", "confirm_verify_conf", "save_conf", "confirm_save_conf", "activate_conf", "confirm_activate_conf", "release_conf_lock" ], "http_method": "DELETE", "action": "remove", "request_format": "JSON" } ], "summary_attrs": [ "realm-id", "source-address", "application-protocol", "transport-protocol" ], "instance_operations": [ "get", "update", "remove" ] }, "device_type": "device/oraclesbc", "hierarchy_friendly_name": "sys (System)", "schema": "{\n \"verified\": {\n \"name\": \"verified\",\n \"title\": \"Verified\",\n \"type\": \"boolean\",\n \"readonly\": true,\n \"cache_only\": true\n },\n \"saved\": {\n \"name\": \"saved\",\n \"title\": \"Saved\",\n \"type\": \"boolean\",\n \"readonly\": true,\n \"cache_only\": true\n },\n \"activated\": {\n \"name\": \"activated\",\n \"title\": \"Activated\",\n \"type\": \"boolean\",\n \"readonly\": true,\n \"cache_only\": true\n },\n \"id\": {\n \"name\": \"id\",\n \"type\": \"string\",\n \"title\": \"id\",\n \"readonly\": true,\n \"required\": false\n },\n \"realm-id\": {\n \"name\": \"realm-id\",\n \"type\": \"string\",\n \"title\": \"realm-id\",\n \"readonly\": true,\n \"required\": true,\n \"format\": \"uri\",\n \"target\": \"device/oraclesbc/RealmConfig\",\n \"target_attr\": \"identifier\",\n \"target_title\": \"identifier\"\n },\n \"source-address\": {\n \"name\": \"source-address\",\n \"type\": \"string\",\n \"title\": \"source-address\",\n \"readonly\": true,\n \"required\": true\n },\n \"application-protocol\": {\n \"name\": \"application-protocol\",\n \"type\": \"string\",\n \"title\": \"application-protocol\",\n \"readonly\": true,\n \"required\": true,\n \"choices\": [\n {\n \"value\": \"SIP\",\n \"title\": \"SIP\"\n },\n {\n \"value\": \"H323\",\n \"title\": \"H323\"\n },\n {\n \"value\": \"MGCP\",\n \"title\": \"MGCP\"\n },\n {\n \"value\": \"DIAMETER\",\n \"title\": \"DIAMETER\"\n },\n {\n \"value\": \"NONE\",\n \"title\": \"NONE\"\n }\n ]\n },\n \"description\": {\n \"name\": \"description\",\n \"type\": \"string\",\n \"title\": \"description\"\n },\n \"destination-address\": {\n \"name\": \"destination-address\",\n \"type\": \"string\",\n \"title\": \"destination-address\"\n },\n \"transport-protocol\": {\n \"name\": \"transport-protocol\",\n \"type\": \"string\",\n \"title\": \"transport-protocol\",\n \"readonly\": true,\n \"required\": true,\n \"choices\": [\n {\n \"value\": \"UDP\",\n \"title\": \"UDP\"\n },\n {\n \"value\": \"TCP\",\n \"title\": \"TCP\"\n },\n {\n \"value\": \"SCTP\",\n \"title\": \"SCTP\"\n },\n {\n \"value\": \"ALL\",\n \"title\": \"ALL\"\n }\n ]\n },\n \"access\": {\n \"name\": \"access\",\n \"type\": \"string\",\n \"title\": \"access\",\n \"choices\": [\n {\n \"value\": \"deny\",\n \"title\": \"deny\"\n },\n {\n \"value\": \"permit\",\n \"title\": \"permit\"\n }\n ]\n },\n \"average-rate-limit\": {\n \"name\": \"average-rate-limit\",\n \"type\": \"string\",\n \"title\": \"average-rate-limit\"\n },\n \"trust-level\": {\n \"name\": \"trust-level\",\n \"type\": \"string\",\n \"title\": \"trust-level\",\n \"choices\": [\n {\n \"value\": \"none\",\n \"title\": \"none\"\n },\n {\n \"value\": \"low\",\n \"title\": \"low\"\n },\n {\n \"value\": \"medium\",\n \"title\": \"medium\"\n },\n {\n \"value\": \"high\",\n \"title\": \"high\"\n }\n ]\n },\n \"minimum-reserved-bandwidth\": {\n \"name\": \"minimum-reserved-bandwidth\",\n \"type\": \"string\",\n \"title\": \"minimum-reserved-bandwidth\"\n },\n \"invalid-signal-threshold\": {\n \"name\": \"invalid-signal-threshold\",\n \"type\": \"string\",\n \"title\": \"invalid-signal-threshold\"\n },\n \"maximum-signal-threshold\": {\n \"name\": \"maximum-signal-threshold\",\n \"type\": \"string\",\n \"title\": \"maximum-signal-threshold\"\n },\n \"untrusted-signal-threshold\": {\n \"name\": \"untrusted-signal-threshold\",\n \"type\": \"string\",\n \"title\": \"untrusted-signal-threshold\"\n },\n \"deny-period\": {\n \"name\": \"deny-period\",\n \"type\": \"string\",\n \"title\": \"deny-period\"\n },\n \"nat-trust-threshold\": {\n \"name\": \"nat-trust-threshold\",\n \"type\": \"string\",\n \"title\": \"nat-trust-threshold\"\n },\n \"max-endpoints-per-nat\": {\n \"name\": \"max-endpoints-per-nat\",\n \"type\": \"string\",\n \"title\": \"max-endpoints-per-nat\"\n },\n \"nat-invalid-message-threshold\": {\n \"name\": \"nat-invalid-message-threshold\",\n \"type\": \"string\",\n \"title\": \"nat-invalid-message-threshold\"\n },\n \"cac-failure-threshold\": {\n \"name\": \"cac-failure-threshold\",\n \"type\": \"string\",\n \"title\": \"cac-failure-threshold\"\n },\n \"untrust-cac-failure-threshold\": {\n \"name\": \"untrust-cac-failure-threshold\",\n \"type\": \"string\",\n \"title\": \"untrust-cac-failure-threshold\"\n }\n}", "hierarchy_path": "sys" } }, { "pkid": "61b0e88141e9336d6e1f6f6f", "meta": { "tags": [ "oraclesbc", "V4UC", "ba_CommonOverlay" ], "cached": true, "title": "AccessControl - 1.1 - device/oracleecb", "business_key": { "hierarchy": true, "unique": [ "name", "version", "device_type" ] }, "schema_version": "1.3.6", "summary": "false", "references": { "device": [ { "pkid": "", "href": "" } ], "owner": [ { "pkid": "" } ], "self": [ { "pkid": "61b0e88141e9336d6e1f6f6f", "href": "/api/data/DeviceModel/61b0e88141e9336d6e1f6f6f/" } ], "parent": [ { "pkid": "6t0ggef2c0deab00hb595101", "href": "/api/data/HierarchyNode/6t0ggef2c0deab00hb595101" } ], "foreign_key": [] }, "actions": [ { "update": { "support_async": true, "href": "/api/data/DeviceModel/61b0e88141e9336d6e1f6f6f/", "title": "Modify", "class": "update", "method": "PUT" } }, { "remove": { "support_async": true, "href": "/api/data/DeviceModel/61b0e88141e9336d6e1f6f6f/", "title": "Delete", "class": "delete", "method": "DELETE" } }, { "clone": { "support_async": false, "href": "/api/data/DeviceModel/61b0e88141e9336d6e1f6f6f/clone/?schema=&schema_rules=true", "title": "Clone", "class": "clone", "method": "GET" } }, { "export": { "title": "Export", "support_async": false, "submit": "payload", "class": "export", "href": "/api/data/DeviceModel/61b0e88141e9336d6e1f6f6f/export/", "method": "GET", "view": "/api/view/ExportData/add/" } }, { "tag": { "title": "Tag", "support_async": true, "class": "tag", "href": "/api/data/DeviceModel/61b0e88141e9336d6e1f6f6f/+tag/", "method": "PATCH", "view": "/api/view/TagNameForm/add/" } }, { "tag_version": { "title": "Tag Version", "support_async": true, "class": "tag_version", "href": "/api/data/DeviceModel/61b0e88141e9336d6e1f6f6f/+tag_version/", "method": "PATCH", "view": "/api/view/TagVersionForm/add/" } }, { "get": { "support_async": false, "href": "/api/data/DeviceModel/61b0e88141e9336d6e1f6f6f/", "title": "Get", "class": "get", "method": "GET" } }, { "help": { "support_async": false, "href": "/api/data/DeviceModel/61b0e88141e9336d6e1f6f6f/help", "title": "Help", "class": "help", "method": "GET" } } ], "model_type": "data/DeviceModel", "path": [ "6t0ggef2c0deab00hb595101", "61b0e88141e9336d6e1f6f6f" ], "summary_attrs": [ { "name": "name", "title": "Name" }, { "name": "version", "title": "Version" }, { "name": "device_type", "title": "Device Type" }, { "allow_filtering": true, "name": "hierarchy_friendly_name", "title": "Located At" } ], "api_version": "21.2", "tagged_versions": [] }, "data": { "primary_key": "id", "pkid": "61b0e88141e9336d6e1f6f70", "version": "1.1", "name": "AccessControl", "Meta": { "operations": [ "list", "get", "add", "update", "remove", "move", "clone", "export", "export_bulkload_template", "bulk_update_form", "configuration_template", "field_display_policy", "help", "migration", "transform", "tag", "tag_version" ], "list_operations": [ "list", "add" ], "api_operations": [ { "target": "HTTP", "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements?elementType=access-control", "response_format": "XML", "response_template": "{%- set ns=namespace(output_list=[], items=input['response']['data']['configElement']) %}\n\n{%- if ns.items is mapping %}\n {%- set ns.items = [ns.items] %}\n{%- endif %}\n\n{%- for item in ns.items %}\n {%- set output={} %}\n {%- for attr in item.get('attribute', []) %}\n {%- set _=output.__setitem__(attr['name'], attr['value']) %}\n {%- endfor %}\n {%- set xyz = output['realm-id'] + ':' + output['source-address'] + ':' + output['application-protocol'] + ':' + output['transport-protocol'] %}\n {%- set _=output.__setitem__('id', xyz) %}\n\n {%- set _=ns.output_list.append(output) %}\n{%- endfor %}\n\n{{ ns.output_list|to_json }}", "http_method": "GET", "action": "list", "request_format": "JSON" }, { "target": "HTTP", "variables": [ { "name": "id", "value": "(( fn.is_none_or_empty pwf._context.input.id == False )) <{{ pwf._context.input.id }}> <{{ pwf._context.driver_parameters.pk }}>" }, { "name": "pk_parts", "value": "{{ fn.split pwf.id,: }}" }, { "name": "realmId", "value": "{{ fn.index pwf.pk_parts,0 }}" }, { "name": "sourceAddress", "value": "{{ fn.index pwf.pk_parts,1 }}" }, { "name": "applicationProtocol", "value": "{{ fn.index pwf.pk_parts,2 }}" }, { "name": "transportProtocol", "value": "{{ fn.index pwf.pk_parts,3 }}" } ], "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements?elementType=access-control&realm-id={{ variables.realmId }}&source-address={{ variables.sourceAddress }}&application-protocol={{ variables.applicationProtocol }}&transport-protocol={{ variables.transportProtocol }}", "response_format": "XML", "response_template": "{%- set ns=namespace(output={}, item=input['response']['data']['configElement']['attribute']) %}\n\n{%- if ns.item is mapping %}\n {%- set ns.item = [ns.item] %}\n{%- endif %}\n\n{%- for attr in ns.item %}\n {%- set _=ns.output.__setitem__(attr['name'], attr['value']) %}\n{%- endfor %}\n\n{{ ns.output | to_json }}", "http_method": "GET", "action": "get", "request_format": "JSON" }, { "pre_request_calls": [ "get_conf_lock" ], "target": "HTTP", "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements", "response_format": "XML", "response_template": "{%- set ns=namespace(output={'verified': false, 'saved': false, 'activated': false}, item=input['response']['data']['configElement']['attribute']) %}\n\n{%- if ns.item is mapping %}\n {%- set ns.item = [ns.item] %}\n{%- endif %}\n\n{%- for attr in ns.item %}\n {%- set _=ns.output.__setitem__(attr['name'], attr['value']) %}\n{%- endfor %}\n\n{%- for confirm_type, confirm_field_name in (('confirm_verify_conf', 'verified'), ('confirm_save_conf', 'saved'), ('confirm_activate_conf', 'activated')) %}\n {%- if request_data.get(confirm_type) %}\n {%- if request_data[confirm_type][0].get(confirm_field_name) == true %}\n {%- set _=ns.output.__setitem__(confirm_field_name, true) %}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n\n{{ ns.output | to_json }}", "post_request_calls": [ "verify_conf", "confirm_verify_conf", "save_conf", "confirm_save_conf", "activate_conf", "confirm_activate_conf", "release_conf_lock" ], "http_method": "PUT", "request_template": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<configElement>\n <elementType>access-control</elementType>\n{%- if input['realm-id'] %}\n <attribute>\n <name>realm-id</name>\n <value>{{ input['realm-id'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['description'] %}\n <attribute>\n <name>description</name>\n <value>{{ input['description'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['source-address'] %}\n <attribute>\n <name>source-address</name>\n <value>{{ input['source-address'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['destination-address'] %}\n <attribute>\n <name>destination-address</name>\n <value>{{ input['destination-address'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['application-protocol'] %}\n <attribute>\n <name>application-protocol</name>\n <value>{{ input['application-protocol'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['transport-protocol'] %}\n <attribute>\n <name>transport-protocol</name>\n <value>{{ input['transport-protocol'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['access'] %}\n <attribute>\n <name>access</name>\n <value>{{ input['access'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['average-rate-limit'] %}\n <attribute>\n <name>average-rate-limit</name>\n <value>{{ input['average-rate-limit'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['minimum-reserved-bandwidth'] %}\n <attribute>\n <name>minimum-reserved-bandwidth</name>\n <value>{{ input['minimum-reserved-bandwidth'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['trust-level'] %}\n <attribute>\n <name>trust-level</name>\n <value>{{ input['trust-level'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['invalid-signal-threshold'] %}\n <attribute>\n <name>invalid-signal-threshold</name>\n <value>{{ input['invalid-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['maximum-signal-threshold'] %}\n <attribute>\n <name>maximum-signal-threshold</name>\n <value>{{ input['maximum-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['untrusted-signal-threshold'] %}\n <attribute>\n <name>untrusted-signal-threshold</name>\n <value>{{ input['untrusted-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['deny-period'] %}\n <attribute>\n <name>deny-period</name>\n <value>{{ input['deny-period'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['nat-trust-threshold'] %}\n <attribute>\n <name>nat-trust-threshold</name>\n <value>{{ input['nat-trust-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['max-endpoints-per-nat'] %}\n <attribute>\n <name>max-endpoints-per-nat</name>\n <value>{{ input['max-endpoints-per-nat'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['nat-invalid-message-threshold'] %}\n <attribute>\n <name>nat-invalid-message-threshold</name>\n <value>{{ input['nat-invalid-message-threshold'] }}</value>\n </attribute>\n{%- endif %}\n</configElement>", "action": "update", "request_format": "JSON" }, { "pre_request_calls": [ "get_conf_lock" ], "target": "HTTP", "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements", "response_format": "XML", "response_template": "{%- set ns=namespace(output={'verified': false, 'saved': false, 'activated': false}, item=input['response']['data']['configElement']['attribute']) %}\n\n{%- if ns.item is mapping %}\n {%- set ns.item = [ns.item] %}\n{%- endif %}\n\n{%- for attr in ns.item %}\n {%- set _=ns.output.__setitem__(attr['name'], attr['value']) %}\n{%- endfor %}\n\n{%- set xyz = ns.output['realm-id'] + ':' + ns.output['source-address'] + ':' + ns.output['application-protocol'] + ':' + ns.output['transport-protocol'] %}\n{%- set _=ns.output.__setitem__('id', xyz) %}\n\n{%- for confirm_type, confirm_field_name in (('confirm_verify_conf', 'verified'), ('confirm_save_conf', 'saved'), ('confirm_activate_conf', 'activated')) %}\n {%- if request_data.get(confirm_type) %}\n {%- if request_data[confirm_type][0].get(confirm_field_name) == true %}\n {%- set _=ns.output.__setitem__(confirm_field_name, true) %}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n\n{{ ns.output | to_json }}", "post_request_calls": [ "verify_conf", "confirm_verify_conf", "save_conf", "confirm_save_conf", "activate_conf", "confirm_activate_conf", "release_conf_lock" ], "http_method": "POST", "request_template": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<configElement>\n <elementType>access-control</elementType>\n{%- if input['realm-id'] %}\n <attribute>\n <name>realm-id</name>\n <value>{{ input['realm-id'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['description'] %}\n <attribute>\n <name>description</name>\n <value>{{ input['description'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['source-address'] %}\n <attribute>\n <name>source-address</name>\n <value>{{ input['source-address'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['destination-address'] %}\n <attribute>\n <name>destination-address</name>\n <value>{{ input['destination-address'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['application-protocol'] %}\n <attribute>\n <name>application-protocol</name>\n <value>{{ input['application-protocol'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['transport-protocol'] %}\n <attribute>\n <name>transport-protocol</name>\n <value>{{ input['transport-protocol'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['access'] %}\n <attribute>\n <name>access</name>\n <value>{{ input['access'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['average-rate-limit'] %}\n <attribute>\n <name>average-rate-limit</name>\n <value>{{ input['average-rate-limit'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['minimum-reserved-bandwidth'] %}\n <attribute>\n <name>minimum-reserved-bandwidth</name>\n <value>{{ input['minimum-reserved-bandwidth'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['trust-level'] %}\n <attribute>\n <name>trust-level</name>\n <value>{{ input['trust-level'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['invalid-signal-threshold'] %}\n <attribute>\n <name>invalid-signal-threshold</name>\n <value>{{ input['invalid-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['maximum-signal-threshold'] %}\n <attribute>\n <name>maximum-signal-threshold</name>\n <value>{{ input['maximum-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['untrusted-signal-threshold'] %}\n <attribute>\n <name>untrusted-signal-threshold</name>\n <value>{{ input['untrusted-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['deny-period'] %}\n <attribute>\n <name>deny-period</name>\n <value>{{ input['deny-period'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['nat-trust-threshold'] %}\n <attribute>\n <name>nat-trust-threshold</name>\n <value>{{ input['nat-trust-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['max-endpoints-per-nat'] %}\n <attribute>\n <name>max-endpoints-per-nat</name>\n <value>{{ input['max-endpoints-per-nat'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['nat-invalid-message-threshold'] %}\n <attribute>\n <name>nat-invalid-message-threshold</name>\n <value>{{ input['nat-invalid-message-threshold'] }}</value>\n </attribute>\n{%- endif %}\n</configElement>", "action": "add", "request_format": "JSON" }, { "pre_request_calls": [ "get_conf_lock" ], "target": "HTTP", "variables": [ { "name": "id", "value": "(( fn.is_none_or_empty pwf._context.input.id == False )) <{{ pwf._context.input.id }}> <{{ pwf._context.driver_parameters.pk }}>" }, { "name": "pk_parts", "value": "{{ fn.split pwf.id,: }}" }, { "name": "realmId", "value": "{{ fn.index pwf.pk_parts,0 }}" }, { "name": "sourceAddress", "value": "{{ fn.index pwf.pk_parts,1 }}" }, { "name": "applicationProtocol", "value": "{{ fn.index pwf.pk_parts,2 }}" }, { "name": "transportProtocol", "value": "{{ fn.index pwf.pk_parts,3 }}" } ], "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements?elementType=access-control&realm-id={{ variables.realmId }}&source-address={{ variables.sourceAddress }}&application-protocol={{ variables.applicationProtocol }}&transport-protocol={{ variables.transportProtocol }}", "response_format": "XML", "post_request_calls": [ "verify_conf", "confirm_verify_conf", "save_conf", "confirm_save_conf", "activate_conf", "confirm_activate_conf", "release_conf_lock" ], "http_method": "DELETE", "action": "remove", "request_format": "JSON" } ], "summary_attrs": [ "realm-id", "source-address", "application-protocol", "transport-protocol" ], "instance_operations": [ "get", "update", "remove" ] }, "device_type": "device/oracleecb", "hierarchy_friendly_name": "sys (System)", "schema": "{\n \"verified\": {\n \"name\": \"verified\",\n \"title\": \"Verified\",\n \"type\": \"boolean\",\n \"readonly\": true,\n \"cache_only\": true\n },\n \"saved\": {\n \"name\": \"saved\",\n \"title\": \"Saved\",\n \"type\": \"boolean\",\n \"readonly\": true,\n \"cache_only\": true\n },\n \"activated\": {\n \"name\": \"activated\",\n \"title\": \"Activated\",\n \"type\": \"boolean\",\n \"readonly\": true,\n \"cache_only\": true\n },\n \"id\": {\n \"name\": \"id\",\n \"type\": \"string\",\n \"title\": \"id\",\n \"readonly\": true,\n \"required\": false\n },\n \"realm-id\": {\n \"name\": \"realm-id\",\n \"type\": \"string\",\n \"title\": \"realm-id\",\n \"readonly\": true,\n \"required\": true,\n \"format\": \"uri\",\n \"target\": \"device/oracleecb/RealmConfig\",\n \"target_attr\": \"identifier\",\n \"target_title\": \"identifier\"\n },\n \"source-address\": {\n \"name\": \"source-address\",\n \"type\": \"string\",\n \"title\": \"source-address\",\n \"readonly\": true,\n \"required\": true\n },\n \"application-protocol\": {\n \"name\": \"application-protocol\",\n \"type\": \"string\",\n \"title\": \"application-protocol\",\n \"readonly\": true,\n \"required\": true,\n \"choices\": [\n {\n \"value\": \"SIP\",\n \"title\": \"SIP\"\n },\n {\n \"value\": \"H323\",\n \"title\": \"H323\"\n },\n {\n \"value\": \"MGCP\",\n \"title\": \"MGCP\"\n },\n {\n \"value\": \"DIAMETER\",\n \"title\": \"DIAMETER\"\n },\n {\n \"value\": \"NONE\",\n \"title\": \"NONE\"\n }\n ]\n },\n \"description\": {\n \"name\": \"description\",\n \"type\": \"string\",\n \"title\": \"description\"\n },\n \"destination-address\": {\n \"name\": \"destination-address\",\n \"type\": \"string\",\n \"title\": \"destination-address\"\n },\n \"transport-protocol\": {\n \"name\": \"transport-protocol\",\n \"type\": \"string\",\n \"title\": \"transport-protocol\",\n \"readonly\": true,\n \"required\": true,\n \"choices\": [\n {\n \"value\": \"UDP\",\n \"title\": \"UDP\"\n },\n {\n \"value\": \"TCP\",\n \"title\": \"TCP\"\n },\n {\n \"value\": \"SCTP\",\n \"title\": \"SCTP\"\n },\n {\n \"value\": \"ALL\",\n \"title\": \"ALL\"\n }\n ]\n },\n \"access\": {\n \"name\": \"access\",\n \"type\": \"string\",\n \"title\": \"access\",\n \"choices\": [\n {\n \"value\": \"deny\",\n \"title\": \"deny\"\n },\n {\n \"value\": \"permit\",\n \"title\": \"permit\"\n }\n ]\n },\n \"average-rate-limit\": {\n \"name\": \"average-rate-limit\",\n \"type\": \"string\",\n \"title\": \"average-rate-limit\"\n },\n \"trust-level\": {\n \"name\": \"trust-level\",\n \"type\": \"string\",\n \"title\": \"trust-level\",\n \"choices\": [\n {\n \"value\": \"none\",\n \"title\": \"none\"\n },\n {\n \"value\": \"low\",\n \"title\": \"low\"\n },\n {\n \"value\": \"medium\",\n \"title\": \"medium\"\n },\n {\n \"value\": \"high\",\n \"title\": \"high\"\n }\n ]\n },\n \"minimum-reserved-bandwidth\": {\n \"name\": \"minimum-reserved-bandwidth\",\n \"type\": \"string\",\n \"title\": \"minimum-reserved-bandwidth\"\n },\n \"invalid-signal-threshold\": {\n \"name\": \"invalid-signal-threshold\",\n \"type\": \"string\",\n \"title\": \"invalid-signal-threshold\"\n },\n \"maximum-signal-threshold\": {\n \"name\": \"maximum-signal-threshold\",\n \"type\": \"string\",\n \"title\": \"maximum-signal-threshold\"\n },\n \"untrusted-signal-threshold\": {\n \"name\": \"untrusted-signal-threshold\",\n \"type\": \"string\",\n \"title\": \"untrusted-signal-threshold\"\n },\n \"deny-period\": {\n \"name\": \"deny-period\",\n \"type\": \"string\",\n \"title\": \"deny-period\"\n },\n \"nat-trust-threshold\": {\n \"name\": \"nat-trust-threshold\",\n \"type\": \"string\",\n \"title\": \"nat-trust-threshold\"\n },\n \"max-endpoints-per-nat\": {\n \"name\": \"max-endpoints-per-nat\",\n \"type\": \"string\",\n \"title\": \"max-endpoints-per-nat\"\n },\n \"nat-invalid-message-threshold\": {\n \"name\": \"nat-invalid-message-threshold\",\n \"type\": \"string\",\n \"title\": \"nat-invalid-message-threshold\"\n },\n \"cac-failure-threshold\": {\n \"name\": \"cac-failure-threshold\",\n \"type\": \"string\",\n \"title\": \"cac-failure-threshold\"\n },\n \"untrust-cac-failure-threshold\": {\n \"name\": \"untrust-cac-failure-threshold\",\n \"type\": \"string\",\n \"title\": \"untrust-cac-failure-threshold\"\n }\n}", "hierarchy_path": "sys" } }, { "pkid": "61b0e87041e9336d6e1f6bda", "meta": { "tags": [ "auto_cucm", "V4UC", "ba_CommonOverlay" ], "cached": true, "title": "AccessControlGroup - 11.5.3 - device/guicucm", "business_key": { "hierarchy": true, "unique": [ "name", "version", "device_type" ] }, "schema_version": "1.3.6", "summary": "false", "references": { "device": [ { "pkid": "", "href": "" } ], "owner": [ { "pkid": "" } ], "self": [ { "pkid": "61b0e87041e9336d6e1f6bda", "href": "/api/data/DeviceModel/61b0e87041e9336d6e1f6bda/" } ], "parent": [ { "pkid": "6t0ggef2c0deab00hb595101", "href": "/api/data/HierarchyNode/6t0ggef2c0deab00hb595101" } ], "foreign_key": [] }, "actions": [ { "update": { "support_async": true, "method": "PUT", "href": "/api/data/DeviceModel/61b0e87041e9336d6e1f6bda/", "class": "update", "title": "Modify" } }, { "remove": { "support_async": true, "method": "DELETE", "href": "/api/data/DeviceModel/61b0e87041e9336d6e1f6bda/", "class": "delete", "title": "Delete" } }, { "clone": { "support_async": false, "method": "GET", "href": "/api/data/DeviceModel/61b0e87041e9336d6e1f6bda/clone/?schema=&schema_rules=true", "class": "clone", "title": "Clone" } }, { "export": { "title": "Export", "support_async": false, "submit": "payload", "method": "GET", "href": "/api/data/DeviceModel/61b0e87041e9336d6e1f6bda/export/", "class": "export", "view": "/api/view/ExportData/add/" } }, { "tag": { "title": "Tag", "support_async": true, "class": "tag", "href": "/api/data/DeviceModel/61b0e87041e9336d6e1f6bda/+tag/", "method": "PATCH", "view": "/api/view/TagNameForm/add/" } }, { "tag_version": { "title": "Tag Version", "support_async": true, "class": "tag_version", "href": "/api/data/DeviceModel/61b0e87041e9336d6e1f6bda/+tag_version/", "method": "PATCH", "view": "/api/view/TagVersionForm/add/" } }, { "get": { "support_async": false, "method": "GET", "href": "/api/data/DeviceModel/61b0e87041e9336d6e1f6bda/", "class": "get", "title": "Get" } }, { "help": { "support_async": false, "method": "GET", "href": "/api/data/DeviceModel/61b0e87041e9336d6e1f6bda/help", "class": "help", "title": "Help" } } ], "model_type": "data/DeviceModel", "path": [ "6t0ggef2c0deab00hb595101", "61b0e87041e9336d6e1f6bda" ], "summary_attrs": [ { "name": "name", "title": "Name" }, { "name": "version", "title": "Version" }, { "name": "device_type", "title": "Device Type" }, { "allow_filtering": true, "name": "hierarchy_friendly_name", "title": "Located At" } ], "api_version": "21.2", "tagged_versions": [] }, "data": { "primary_key": "id", "Meta": { "operations": [ "list", "get", "add", "update", "remove", "move", "clone", "export", "export_bulkload_template", "bulk_update_form", "configuration_template", "field_display_policy", "help", "migration", "transform", "tag", "tag_version", "execute", "import", "test_connect" ], "list_operations": [ "list" ], "api_operations": [ { "action": "Create", "http_method": "get", "request_template": "[\n {\n \"command\": \"open\",\n \"target\": \"https://{{ driver_parameters.host }}/ccmadmin/index.jsp\"\n },\n {\n \"command\": \"type\",\n \"target\": \"name=j_username\",\n \"value\": \"{{ driver_parameters.username }}\"\n },\n {\n \"command\": \"type\",\n \"target\": \"name=j_password\",\n \"value\": \"{{ driver_parameters.password }}\"\n },\n {\n \"command\": \"click\",\n \"target\": \"xpath=//button[@type='submit']\"\n },\n\n {\n \"command\": \"open\",\n \"target\": \"https://{{ driver_parameters.host }}/ccmadmin/userGroupFindList.do\",\n \"value\": \"\"\n },\n {\n \"command\": \"click\",\n \"target\": \"id=1tbllink\",\n \"value\": \"\"\n },\n {\n \"command\": \"type\",\n \"target\": \"id=NAME\",\n \"value\": \"{{ input.access_control_group }}\"\n },\n {\n \"command\": \"click\",\n \"target\": \"name=Save\",\n \"value\": \"\"\n },\n\n\n\n {\n \"command\": \"click\",\n \"target\": \"id=menu1\",\n \"value\": \"\"\n },\n {\n \"command\": \"select\",\n \"target\": \"id=menu1\",\n \"value\": \"label=Assign Role to Access Control Group\"\n },\n {\n \"command\": \"click\",\n \"target\": \"xpath=(.//*[normalize-space(text()) and normalize-space(.)='Related Links:'])[1]/following::input[1]\",\n \"value\": \"\"\n },\n {\n \"command\": \"click\",\n \"target\": \"name=Assign Role to Group\",\n \"value\": \"\",\n \"sleep\": 3\n },\n {\n \"command\": \"switch_to_window_handle\",\n \"target\": 1,\n \"value\": \"\"\n },\n {\n \"command\": \"type\",\n \"target\": \"id=searchString0\",\n \"value\": \"{{ input.role }}\"\n },\n {\n \"command\": \"click\",\n \"target\": \"name=findButton\",\n \"value\": \"\"\n },\n {\n \"command\": \"click\",\n \"target\": \"name=result[0].chked\",\n \"value\": \"\"\n },\n {\n \"command\": \"click\",\n \"target\": \"name=Add Selected\",\n \"value\": \"\"\n },\n\n {\n \"command\": \"switch_to_window_handle\",\n \"target\": 0,\n \"value\": \"\"\n },\n {\n \"command\": \"click\",\n \"target\": \"name=Save\",\n \"value\": \"\"\n },\n\n\n {\n \"command\": \"open\",\n \"target\": \"https://{{ driver_parameters.host }}/ccmadmin/logoff.do\"\n }\n]", "target": "Browser", "response_format": "JSON" } ], "summary_attrs": [ "id" ], "instance_operations": [ "get" ] }, "pkid": "61b0e87041e9336d6e1f6bdb", "documentation": "Device model used to add an Access Control Group in CUCM", "name": "AccessControlGroup", "version": "11.5.3", "device_type": "device/guicucm", "hierarchy_friendly_name": "sys (System)", "schema": "{\n \"id\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"gui_cucm_bkey\": {\n \"type\": \"string\"\n },\n \"cucm_bkey\": {\n \"type\": \"string\"\n },\n \"cucm_server\": {\n \"type\": \"string\"\n },\n \"access_control_group\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\"\n }\n}", "hierarchy_path": "sys" } } ] }
(Show the first instance)
{ "pkid": "61b0e86d41e9336d6e1f6b39", "meta": { "tags": [ "oraclesbc", "V4UC", "ba_CommonOverlay" ], "cached": false, "title": "AccessControl - 1.2 - device/oraclesbc", "business_key": { "hierarchy": true, "unique": [ "name", "version", "device_type" ] }, "schema_version": "1.3.6", "references": { "parent": [ { "pkid": "6t0ggef2c0deab00hb595101", "href": "/api/data/HierarchyNode/6t0ggef2c0deab00hb595101" } ], "self": [ { "pkid": "61b0e86d41e9336d6e1f6b39", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/" } ], "foreign_key": [], "device": [ { "pkid": "", "href": "" } ], "owner": [ { "pkid": "" } ], "children": [] }, "actions": [ { "update": { "support_async": true, "class": "update", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/?hierarchy=[hierarchy]", "method": "PUT", "title": "Modify" } }, { "remove": { "support_async": true, "class": "delete", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/?hierarchy=[hierarchy]", "method": "DELETE", "title": "Delete" } }, { "clone": { "support_async": false, "class": "clone", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/clone/?hierarchy=[hierarchy]&schema=&schema_rules=true", "method": "GET", "title": "Clone" } }, { "export": { "title": "Export", "support_async": false, "submit": "payload", "class": "export", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/export/?hierarchy=[hierarchy]", "method": "GET", "view": "/api/view/ExportData/add/?auth_token=[authtoken] } }, { "tag": { "title": "Tag", "support_async": true, "method": "PATCH", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/+tag/?hierarchy=[hierarchy]", "class": "tag", "view": "/api/view/TagNameForm/add/?auth_token=[authtoken] } }, { "tag_version": { "title": "Tag Version", "support_async": true, "method": "PATCH", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/+tag_version/?hierarchy=[hierarchy]", "class": "tag_version", "view": "/api/view/TagVersionForm/add/?auth_token=[authtoken] } }, { "get": { "support_async": false, "class": "get", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/?hierarchy=[hierarchy]", "method": "GET", "title": "Get" } }, { "help": { "support_async": false, "class": "help", "href": "/api/data/DeviceModel/61b0e86d41e9336d6e1f6b39/help?hierarchy=[hierarchy]", "method": "GET", "title": "Help" } } ], "model_type": "data/DeviceModel", "path": [ "6t0ggef2c0deab00hb595101", "61b0e86d41e9336d6e1f6b39" ], "summary_attrs": [ { "name": "name", "title": "Name" }, { "name": "version", "title": "Version" }, { "name": "device_type", "title": "Device Type" }, { "allow_filtering": true, "name": "hierarchy_friendly_name", "title": "Located At" } ], "api_version": "21.2", "tagged_versions": [] }, "data": { "primary_key": "id", "pkid": "61b0e86d41e9336d6e1f6b3a", "version": "1.2", "Meta": { "operations": [ "list", "get", "add", "update", "remove", "move", "clone", "export", "export_bulkload_template", "bulk_update_form", "configuration_template", "field_display_policy", "help", "migration", "transform", "tag", "tag_version" ], "list_operations": [ "list", "add" ], "api_operations": [ { "target": "HTTP", "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements?elementType=access-control", "response_format": "XML", "response_template": "{%- set ns=namespace(output_list=[], items=input['response']['data']['configElement']) %}\n\n{%- if ns.items is mapping %}\n {%- set ns.items = [ns.items] %}\n{%- endif %}\n\n{%- for item in ns.items %}\n {%- set output={} %}\n {%- for attr in item.get('attribute', []) %}\n {%- set _=output.__setitem__(attr['name'], attr['value']) %}\n {%- endfor %}\n {%- set xyz = output['realm-id'] + ':' + output['source-address'] + ':' + output['application-protocol'] + ':' + output['transport-protocol'] %}\n {%- set _=output.__setitem__('id', xyz) %}\n\n {%- set _=ns.output_list.append(output) %}\n{%- endfor %}\n\n{{ ns.output_list|to_json }}", "http_method": "GET", "action": "list", "request_format": "JSON" }, { "target": "HTTP", "variables": [ { "name": "id", "value": "(( fn.is_none_or_empty pwf._context.input.id == False )) <{{ pwf._context.input.id }}> <{{ pwf._context.driver_parameters.pk }}>" }, { "name": "pk_parts", "value": "{{ fn.split pwf.id,: }}" }, { "name": "realmId", "value": "{{ fn.index pwf.pk_parts,0 }}" }, { "name": "sourceAddress", "value": "{{ fn.index pwf.pk_parts,1 }}" }, { "name": "applicationProtocol", "value": "{{ fn.index pwf.pk_parts,2 }}" }, { "name": "transportProtocol", "value": "{{ fn.index pwf.pk_parts,3 }}" } ], "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements?elementType=access-control&realm-id={{ variables.realmId }}&source-address={{ variables.sourceAddress }}&application-protocol={{ variables.applicationProtocol }}&transport-protocol={{ variables.transportProtocol }}", "response_format": "XML", "response_template": "{%- set ns=namespace(output={}, item=input['response']['data']['configElement']['attribute']) %}\n\n{%- if ns.item is mapping %}\n {%- set ns.item = [ns.item] %}\n{%- endif %}\n\n{%- for attr in ns.item %}\n {%- set _=ns.output.__setitem__(attr['name'], attr['value']) %}\n{%- endfor %}\n\n{{ ns.output | to_json }}", "http_method": "GET", "action": "get", "request_format": "JSON" }, { "pre_request_calls": [ "get_conf_lock" ], "target": "HTTP", "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements", "response_format": "XML", "response_template": "{%- set ns=namespace(output={'verified': false, 'saved': false, 'activated': false}, item=input['response']['data']['configElement']['attribute']) %}\n\n{%- if ns.item is mapping %}\n {%- set ns.item = [ns.item] %}\n{%- endif %}\n\n{%- for attr in ns.item %}\n {%- set _=ns.output.__setitem__(attr['name'], attr['value']) %}\n{%- endfor %}\n\n{%- for confirm_type, confirm_field_name in (('confirm_verify_conf', 'verified'), ('confirm_save_conf', 'saved'), ('confirm_activate_conf', 'activated')) %}\n {%- if request_data.get(confirm_type) %}\n {%- if request_data[confirm_type][0].get(confirm_field_name) == true %}\n {%- set _=ns.output.__setitem__(confirm_field_name, true) %}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n\n{{ ns.output | to_json }}", "post_request_calls": [ "verify_conf", "confirm_verify_conf", "save_conf", "confirm_save_conf", "activate_conf", "confirm_activate_conf", "release_conf_lock" ], "http_method": "PUT", "request_template": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<configElement>\n <elementType>access-control</elementType>\n{%- if input['realm-id'] %}\n <attribute>\n <name>realm-id</name>\n <value>{{ input['realm-id'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['description'] %}\n <attribute>\n <name>description</name>\n <value>{{ input['description'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['source-address'] %}\n <attribute>\n <name>source-address</name>\n <value>{{ input['source-address'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['destination-address'] %}\n <attribute>\n <name>destination-address</name>\n <value>{{ input['destination-address'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['application-protocol'] %}\n <attribute>\n <name>application-protocol</name>\n <value>{{ input['application-protocol'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['transport-protocol'] %}\n <attribute>\n <name>transport-protocol</name>\n <value>{{ input['transport-protocol'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['access'] %}\n <attribute>\n <name>access</name>\n <value>{{ input['access'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['average-rate-limit'] %}\n <attribute>\n <name>average-rate-limit</name>\n <value>{{ input['average-rate-limit'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['minimum-reserved-bandwidth'] %}\n <attribute>\n <name>minimum-reserved-bandwidth</name>\n <value>{{ input['minimum-reserved-bandwidth'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['trust-level'] %}\n <attribute>\n <name>trust-level</name>\n <value>{{ input['trust-level'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['invalid-signal-threshold'] %}\n <attribute>\n <name>invalid-signal-threshold</name>\n <value>{{ input['invalid-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['maximum-signal-threshold'] %}\n <attribute>\n <name>maximum-signal-threshold</name>\n <value>{{ input['maximum-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['untrusted-signal-threshold'] %}\n <attribute>\n <name>untrusted-signal-threshold</name>\n <value>{{ input['untrusted-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['deny-period'] %}\n <attribute>\n <name>deny-period</name>\n <value>{{ input['deny-period'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['nat-trust-threshold'] %}\n <attribute>\n <name>nat-trust-threshold</name>\n <value>{{ input['nat-trust-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['max-endpoints-per-nat'] %}\n <attribute>\n <name>max-endpoints-per-nat</name>\n <value>{{ input['max-endpoints-per-nat'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['nat-invalid-message-threshold'] %}\n <attribute>\n <name>nat-invalid-message-threshold</name>\n <value>{{ input['nat-invalid-message-threshold'] }}</value>\n </attribute>\n{%- endif %}\n</configElement>", "action": "update", "request_format": "JSON" }, { "pre_request_calls": [ "get_conf_lock" ], "target": "HTTP", "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements", "response_format": "XML", "response_template": "{%- set ns=namespace(output={'verified': false, 'saved': false, 'activated': false}, item=input['response']['data']['configElement']['attribute']) %}\n\n{%- if ns.item is mapping %}\n {%- set ns.item = [ns.item] %}\n{%- endif %}\n\n{%- for attr in ns.item %}\n {%- set _=ns.output.__setitem__(attr['name'], attr['value']) %}\n{%- endfor %}\n\n{%- set xyz = ns.output['realm-id'] + ':' + ns.output['source-address'] + ':' + ns.output['application-protocol'] + ':' + ns.output['transport-protocol'] %}\n{%- set _=ns.output.__setitem__('id', xyz) %}\n\n{%- for confirm_type, confirm_field_name in (('confirm_verify_conf', 'verified'), ('confirm_save_conf', 'saved'), ('confirm_activate_conf', 'activated')) %}\n {%- if request_data.get(confirm_type) %}\n {%- if request_data[confirm_type][0].get(confirm_field_name) == true %}\n {%- set _=ns.output.__setitem__(confirm_field_name, true) %}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n\n{{ ns.output | to_json }}", "post_request_calls": [ "verify_conf", "confirm_verify_conf", "save_conf", "confirm_save_conf", "activate_conf", "confirm_activate_conf", "release_conf_lock" ], "http_method": "POST", "request_template": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<configElement>\n <elementType>access-control</elementType>\n{%- if input['realm-id'] %}\n <attribute>\n <name>realm-id</name>\n <value>{{ input['realm-id'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['description'] %}\n <attribute>\n <name>description</name>\n <value>{{ input['description'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['source-address'] %}\n <attribute>\n <name>source-address</name>\n <value>{{ input['source-address'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['destination-address'] %}\n <attribute>\n <name>destination-address</name>\n <value>{{ input['destination-address'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['application-protocol'] %}\n <attribute>\n <name>application-protocol</name>\n <value>{{ input['application-protocol'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['transport-protocol'] %}\n <attribute>\n <name>transport-protocol</name>\n <value>{{ input['transport-protocol'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['access'] %}\n <attribute>\n <name>access</name>\n <value>{{ input['access'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['average-rate-limit'] %}\n <attribute>\n <name>average-rate-limit</name>\n <value>{{ input['average-rate-limit'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['minimum-reserved-bandwidth'] %}\n <attribute>\n <name>minimum-reserved-bandwidth</name>\n <value>{{ input['minimum-reserved-bandwidth'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['trust-level'] %}\n <attribute>\n <name>trust-level</name>\n <value>{{ input['trust-level'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['invalid-signal-threshold'] %}\n <attribute>\n <name>invalid-signal-threshold</name>\n <value>{{ input['invalid-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['maximum-signal-threshold'] %}\n <attribute>\n <name>maximum-signal-threshold</name>\n <value>{{ input['maximum-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['untrusted-signal-threshold'] %}\n <attribute>\n <name>untrusted-signal-threshold</name>\n <value>{{ input['untrusted-signal-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['deny-period'] %}\n <attribute>\n <name>deny-period</name>\n <value>{{ input['deny-period'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['nat-trust-threshold'] %}\n <attribute>\n <name>nat-trust-threshold</name>\n <value>{{ input['nat-trust-threshold'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['max-endpoints-per-nat'] %}\n <attribute>\n <name>max-endpoints-per-nat</name>\n <value>{{ input['max-endpoints-per-nat'] }}</value>\n </attribute>\n{%- endif %}\n{%- if input['nat-invalid-message-threshold'] %}\n <attribute>\n <name>nat-invalid-message-threshold</name>\n <value>{{ input['nat-invalid-message-threshold'] }}</value>\n </attribute>\n{%- endif %}\n</configElement>", "action": "add", "request_format": "JSON" }, { "pre_request_calls": [ "get_conf_lock" ], "target": "HTTP", "variables": [ { "name": "id", "value": "(( fn.is_none_or_empty pwf._context.input.id == False )) <{{ pwf._context.input.id }}> <{{ pwf._context.driver_parameters.pk }}>" }, { "name": "pk_parts", "value": "{{ fn.split pwf.id,: }}" }, { "name": "realmId", "value": "{{ fn.index pwf.pk_parts,0 }}" }, { "name": "sourceAddress", "value": "{{ fn.index pwf.pk_parts,1 }}" }, { "name": "applicationProtocol", "value": "{{ fn.index pwf.pk_parts,2 }}" }, { "name": "transportProtocol", "value": "{{ fn.index pwf.pk_parts,3 }}" } ], "uri": "https://{{ driver_parameters.host }}{{ driver_parameters.api_base }}v{{ driver_parameters.version }}/configuration/configElements?elementType=access-control&realm-id={{ variables.realmId }}&source-address={{ variables.sourceAddress }}&application-protocol={{ variables.applicationProtocol }}&transport-protocol={{ variables.transportProtocol }}", "response_format": "XML", "post_request_calls": [ "verify_conf", "confirm_verify_conf", "save_conf", "confirm_save_conf", "activate_conf", "confirm_activate_conf", "release_conf_lock" ], "http_method": "DELETE", "action": "remove", "request_format": "JSON" } ], "summary_attrs": [ "realm-id", "source-address", "application-protocol", "transport-protocol" ], "instance_operations": [ "get", "update", "remove" ] }, "device_type": "device/oraclesbc", "schema": "{\n \"verified\": {\n \"name\": \"verified\",\n \"title\": \"Verified\",\n \"type\": \"boolean\",\n \"readonly\": true,\n \"cache_only\": true\n },\n \"saved\": {\n \"name\": \"saved\",\n \"title\": \"Saved\",\n \"type\": \"boolean\",\n \"readonly\": true,\n \"cache_only\": true\n },\n \"activated\": {\n \"name\": \"activated\",\n \"title\": \"Activated\",\n \"type\": \"boolean\",\n \"readonly\": true,\n \"cache_only\": true\n },\n \"id\": {\n \"name\": \"id\",\n \"type\": \"string\",\n \"title\": \"id\",\n \"readonly\": true,\n \"required\": false\n },\n \"realm-id\": {\n \"name\": \"realm-id\",\n \"type\": \"string\",\n \"title\": \"realm-id\",\n \"readonly\": true,\n \"required\": true,\n \"format\": \"uri\",\n \"target\": \"device/oraclesbc/RealmConfig\",\n \"target_attr\": \"identifier\",\n \"target_title\": \"identifier\"\n },\n \"source-address\": {\n \"name\": \"source-address\",\n \"type\": \"string\",\n \"title\": \"source-address\",\n \"readonly\": true,\n \"required\": true\n },\n \"application-protocol\": {\n \"name\": \"application-protocol\",\n \"type\": \"string\",\n \"title\": \"application-protocol\",\n \"readonly\": true,\n \"required\": true,\n \"choices\": [\n {\n \"value\": \"SIP\",\n \"title\": \"SIP\"\n },\n {\n \"value\": \"H323\",\n \"title\": \"H323\"\n },\n {\n \"value\": \"MGCP\",\n \"title\": \"MGCP\"\n },\n {\n \"value\": \"DIAMETER\",\n \"title\": \"DIAMETER\"\n },\n {\n \"value\": \"NONE\",\n \"title\": \"NONE\"\n }\n ]\n },\n \"description\": {\n \"name\": \"description\",\n \"type\": \"string\",\n \"title\": \"description\"\n },\n \"destination-address\": {\n \"name\": \"destination-address\",\n \"type\": \"string\",\n \"title\": \"destination-address\"\n },\n \"transport-protocol\": {\n \"name\": \"transport-protocol\",\n \"type\": \"string\",\n \"title\": \"transport-protocol\",\n \"readonly\": true,\n \"required\": true,\n \"choices\": [\n {\n \"value\": \"UDP\",\n \"title\": \"UDP\"\n },\n {\n \"value\": \"TCP\",\n \"title\": \"TCP\"\n },\n {\n \"value\": \"SCTP\",\n \"title\": \"SCTP\"\n },\n {\n \"value\": \"ALL\",\n \"title\": \"ALL\"\n }\n ]\n },\n \"access\": {\n \"name\": \"access\",\n \"type\": \"string\",\n \"title\": \"access\",\n \"choices\": [\n {\n \"value\": \"deny\",\n \"title\": \"deny\"\n },\n {\n \"value\": \"permit\",\n \"title\": \"permit\"\n }\n ]\n },\n \"average-rate-limit\": {\n \"name\": \"average-rate-limit\",\n \"type\": \"string\",\n \"title\": \"average-rate-limit\"\n },\n \"trust-level\": {\n \"name\": \"trust-level\",\n \"type\": \"string\",\n \"title\": \"trust-level\",\n \"choices\": [\n {\n \"value\": \"none\",\n \"title\": \"none\"\n },\n {\n \"value\": \"low\",\n \"title\": \"low\"\n },\n {\n \"value\": \"medium\",\n \"title\": \"medium\"\n },\n {\n \"value\": \"high\",\n \"title\": \"high\"\n }\n ]\n },\n \"minimum-reserved-bandwidth\": {\n \"name\": \"minimum-reserved-bandwidth\",\n \"type\": \"string\",\n \"title\": \"minimum-reserved-bandwidth\"\n },\n \"invalid-signal-threshold\": {\n \"name\": \"invalid-signal-threshold\",\n \"type\": \"string\",\n \"title\": \"invalid-signal-threshold\"\n },\n \"maximum-signal-threshold\": {\n \"name\": \"maximum-signal-threshold\",\n \"type\": \"string\",\n \"title\": \"maximum-signal-threshold\"\n },\n \"untrusted-signal-threshold\": {\n \"name\": \"untrusted-signal-threshold\",\n \"type\": \"string\",\n \"title\": \"untrusted-signal-threshold\"\n },\n \"deny-period\": {\n \"name\": \"deny-period\",\n \"type\": \"string\",\n \"title\": \"deny-period\"\n },\n \"nat-trust-threshold\": {\n \"name\": \"nat-trust-threshold\",\n \"type\": \"string\",\n \"title\": \"nat-trust-threshold\"\n },\n \"max-endpoints-per-nat\": {\n \"name\": \"max-endpoints-per-nat\",\n \"type\": \"string\",\n \"title\": \"max-endpoints-per-nat\"\n },\n \"nat-invalid-message-threshold\": {\n \"name\": \"nat-invalid-message-threshold\",\n \"type\": \"string\",\n \"title\": \"nat-invalid-message-threshold\"\n },\n \"cac-failure-threshold\": {\n \"name\": \"cac-failure-threshold\",\n \"type\": \"string\",\n \"title\": \"cac-failure-threshold\"\n },\n \"untrust-cac-failure-threshold\": {\n \"name\": \"untrust-cac-failure-threshold\",\n \"type\": \"string\",\n \"title\": \"untrust-cac-failure-threshold\"\n }\n}", "name": "AccessControl" } }
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Get the on-line Help for data/DeviceModel. | GET | /api/data/DeviceModel/help | hierarchy=[hierarchy] | On-line help of Model ref.: data/DeviceModel as HTML |
Task | Call | URL | Parameters | Payload |
---|---|---|---|---|
Modify | PUT | /api/data/DeviceModel/[pkid]/ | hierarchy=[hierarchy] | (For payload specification) |
For Bulk modification, refer to the Bulk Modify section.
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Delete | DELETE | /api/data/DeviceModel/[pkid]/ | hierarchy=[hierarchy] |
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Clone instance with [pkid]. The schema rules are applied. | GET | /api/data/DeviceModel/[pkid]/clone/?schema=&schema_rules=true |
|
A JSON payload with:
|
GET http://[host-proxy]/api/data/DeviceModel/?hierarchy=[hierarchy]&format=json
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Get a selected [export_format] of the schema and a single instance with [pkid] of data/DeviceModel; optionally with tag_version at [version] and Configuration Template as [configtemplate]. | GET | /api/data/DeviceModel/[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/DeviceModel and the JSON format can be used to import instances of data/DeviceModel.
For Bulk Export, refer to the Bulk Export section.
Task | Call | URL | Parameters | Payload |
---|---|---|---|---|
Tag | PATCH | /api/data/DeviceModel/[pkid]/+tag/ | hierarchy=[hierarchy] | If payload required: |
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Get | GET | /api/data/DeviceModel/[pkid]/ | hierarchy=[hierarchy] | The data/DeviceModel instance with [pkid]. |
Task | Call | URL | Parameters | Response |
---|---|---|---|---|
Help | GET | /api/data/DeviceModel/[pkid]/help | hierarchy=[hierarchy] | The on-line Help for data/DeviceModel. |