{
  "metadata": {
    "name": "@itentialopensource/l2-l3-vpn",
    "version": "1.3.3-2019.3.0",
    "description": "A IAP demo demo for handling and managing L2VPN (Layer 2 Virtual Private Network) and L3VPN (Layer 3 Virtual Private Network) services.",
    "license": "Apache-2.0",
    "repository": {
      "type": "git",
      "url": "https://gitlab.com/itentialopensource/quickstart-automations/l2-l3-vpn.git"
    },
    "keywords": [
      "IAP",
      "App-Artifacts",
      "artifacts",
      "Itential",
      "Pronghorn",
      "Network",
      "Automation",
      "MOP",
      "NSO",
      "Cisco-IOS",
      "VPN",
      "Service"
    ],
    "IAPDependencies": {
      "@itential/app-artifacts": "3.0.1 - 3",
      "@itential/tags": "2.2.3 - 2",
      "@itential/app-workflow_engine": "6.7.10 - 6",
      "@itential/app-mop": "6.3.6 - 6",
      "@itential/app-form_builder": "4.2.9 - 4",
      "@itential/app-service_catalog": "3.9.8 - 3",
      "@itential/adapter-nso": "6.27.4 - 6",
      "@itential/app-service_management": "2.18.2 - 2",
      "@itential/app-task_worker": "3.0.11 - 3",
      "configuration_manager": {
        "@itential/app-configuration_manager": "3.28.19 - 3",
        "@itential/app-configuration_manager-maintenance": "3.28.19 - 3"
      }
    },
    "gitlabId": 12088425,
    "author": "Itential Artifacts"
  },
  "manifest": {
    "bundleName": "l2-l3-vpn",
    "version": "0.0.1",
    "fingerprint": "Some verifiable token",
    "createdEpoch": "1554836984020",
    "artifacts": [
      {
        "id": "IAP Artifacts L2VPN Multisite Create Workflow",
        "name": "IAP Artifacts L2VPN Multisite Create Workflow",
        "type": "workflow",
        "location": "/bundles/workflows/IAP Artifacts L2VPN Multisite Create Workflow.json",
        "description": "Main entry point to artifact",
        "properties": {}
      },
      {
        "id": "IAP Artifacts L3VPN Multisite Create Workflow",
        "name": "IAP Artifacts L3VPN Multisite Create Workflow",
        "type": "workflow",
        "location": "/bundles/workflows/IAP Artifacts L3VPN Multisite Create Workflow.json",
        "description": "Main entry point to artifact",
        "properties": {}
      },
      {
        "id": "IAP Artifact L3VPN CE PreCheck",
        "name": "IAP Artifact L3VPN CE PreCheck",
        "type": "mop-template",
        "location": "/bundles/mop_templates/IAP Artifacts L3VPN CE PreCheck.json",
        "description": "MOP Command Template"
      },
      {
        "id": "IAP Artifact L3VPN PE PreCheck",
        "name": "IAP Artifact L3VPN PE PreCheck",
        "type": "mop-template",
        "location": "/bundles/mop_templates/IAP Artifacts L3VPN PE PreCheck.json",
        "description": "MOP Command Template"
      },
      {
        "id": "IAP Artifact L3VPN PreCheck",
        "name": "IAP Artifact L3VPN PreCheck",
        "type": "mop-template",
        "location": "/bundles/mop_templates/IAP Artifacts L3VPN PreCheck.json",
        "description": "MOP Command Template"
      },
      {
        "id": "IAP Artifact L3VPN PostCheck",
        "name": "IAP Artifact L3VPN PostCheck",
        "type": "mop-template",
        "location": "/bundles/mop_templates/IAP Artifacts L3VPN PostCheck.json",
        "description": "MOP Command Template"
      },
      {
        "id": "IAP Artifact L3VPN Create Form",
        "name": "IAP Artifact L3VPN Create Form",
        "type": "forms",
        "location": "/bundles/forms/IAP Artifacts L3VPN Create Form.json",
        "description": "Create Form"
      },
      {
        "id": "IAP Artifact L2VPN Create Form",
        "name": "IAP Artifact L2VPN Create Form",
        "type": "forms",
        "location": "/bundles/forms/IAP Artifacts L2VPN Create Form.json",
        "description": "Create Form"
      },
      {
        "id": "IAP Artifact L2VPN Create Service",
        "name": "IAP Artifact L2VPN Create Service",
        "type": "service-catalog",
        "location": "/bundles/catalog_store/IAP Artifacts L2VPN Create Service.json",
        "description": "Create Form"
      },
      {
        "id": "IAP Artifact L3VPN Create Service",
        "name": "IAP Artifact L3VPN Create Service",
        "type": "service-catalog",
        "location": "/bundles/catalog_store/IAP Artifacts L3VPN Create Service.json",
        "description": "Create Form"
      }
    ]
  },
  "bundles": [
    {
      "type": "workflow",
      "data": {
        "name": "IAP Artifacts L2VPN Multisite Create Workflow",
        "tasks": {
          "279": {
            "name": "forEach",
            "summary": "ForEachSite",
            "description": "Iterate over each site in an array",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "data_array": "$var.876e.return_data"
              },
              "outgoing": {
                "current_item": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>forEac</span>h"
              }
            ],
            "groups": [],
            "x": 0.3201754385964912,
            "y": -0.1968365553602812,
            "scheduled": false
          },
          "3020": {
            "name": "push",
            "summary": "Push Item to Array",
            "description": "Push item to a job variable array",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "job_variable": "serviceDataTemp",
                "item_to_push": "$var.job.instanceData"
              },
              "outgoing": {
                "job_variable_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>push</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Push</span> Item to Array"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Push</span> item to a job variable array"
              }
            ],
            "groups": [],
            "x": -0.20678408349641225,
            "y": -0.21074380165289255
          },
          "3699": {
            "name": "newVariable",
            "summary": "Create a Job Variable",
            "description": "Create a new Job variable by Job ID and assign it a value.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "name": "deviceNames",
                "value": []
              },
              "outgoing": {
                "value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>new</span>Variable"
              },
              {
                "key": "description",
                "highlightString": "Create a <span class='highlight-string'>new</span> Job variable by Job ID and assign it a value."
              }
            ],
            "groups": [],
            "x": -0.30463144161774297,
            "y": -0.015151515151515152
          },
          "8439": {
            "name": "query",
            "summary": "QueryServiceID",
            "description": "Query service id",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": ":get(/ncs:services/IAP-Artifact-l2vpn:l2vpn).id",
                "obj": "$var.job.instanceData"
              },
              "outgoing": {
                "return_data": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>query</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Query</span> Data Using 'json-query' Format"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Query</span> data using a dot/bracket notation string and a matching key/value pair."
              }
            ],
            "groups": [],
            "x": -0.5192433137638617,
            "y": -0.20523415977961432,
            "scheduled": false
          },
          "workflow_start": {
            "name": "workflow_start",
            "groups": [],
            "x": -0.5870841487279843,
            "y": -0.19972451790633608
          },
          "workflow_end": {
            "name": "workflow_end",
            "groups": [],
            "x": 1.3320287018917156,
            "y": -0.7727272727272727
          },
          "26a4": {
            "name": "updateJobDescription",
            "summary": "Update Job Description",
            "description": "Overwrite the job description with a new one",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "description": "$var.8439.return_data"
              },
              "outgoing": {
                "description": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>updateJob</span>Description"
              }
            ],
            "groups": [],
            "x": -0.4279191128506197,
            "y": -0.2024793388429752,
            "scheduled": false
          },
          "d13e": {
            "name": "newVariable",
            "summary": "Create a Job Variable",
            "description": "Create a new Job variable by Job ID and assign it a value.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "name": "serviceDataTemp",
                "value": []
              },
              "outgoing": {
                "value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>new</span>Variable"
              },
              {
                "key": "description",
                "highlightString": "Create a <span class='highlight-string'>new</span> Job variable by Job ID and assign it a value."
              }
            ],
            "groups": [],
            "x": -0.3222439660795825,
            "y": -0.37327823691460055
          },
          "3aad": {
            "name": "pop",
            "summary": "Array Pop",
            "description": "Pop off the end data item from a job variable array",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "job_variable": "serviceDataTemp"
              },
              "outgoing": {
                "popped_item": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>pop</span>"
              },
              {
                "key": "summary",
                "highlightString": "Array <span class='highlight-string'>Pop</span>"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Pop</span> off the end data item from a job variable array"
              }
            ],
            "groups": [],
            "x": -0.10371819960861056,
            "y": -0.20110192837465565
          },
          "6dd0": {
            "name": "ShowFormByName",
            "summary": "ViewServiceForm",
            "description": "View service form",
            "location": "Application",
            "app": "FormBuilder",
            "displayName": "FormBuilder",
            "type": "manual",
            "variables": {
              "incoming": {
                "form_name": "IAP Artifacts L2VPN Create Form",
                "instance_data": "$var.3aad.popped_item"
              },
              "outgoing": {
                "export": null
              },
              "error": ""
            },
            "view": "/formbuilder/task/ShowFormByName",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>ShowFor</span>mByName"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 0.007175472928897586,
            "y": -0.2024793388429752,
            "scheduled": false
          },
          "b9e0": {
            "name": "push",
            "summary": "Push Item to Array",
            "description": "Push item to a job variable array",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "job_variable": "serviceDataTemp",
                "item_to_push": "$var.6dd0.export"
              },
              "outgoing": {
                "job_variable_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>push</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Push</span> Item to Array"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Push</span> item to a job variable array"
              }
            ],
            "groups": [],
            "x": 0.1415525114155251,
            "y": -0.1928374655647383
          },
          "876e": {
            "name": "query",
            "summary": "QuerySites",
            "description": "Query sites",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": ":get(/ncs:services/IAP-Artifact-l2vpn:l2vpn).device",
                "obj": "$var.6dd0.export"
              },
              "outgoing": {
                "return_data": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>query</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Query</span> Data Using 'json-query' Format"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Query</span> data using a dot/bracket notation string and a matching key/value pair."
              }
            ],
            "groups": [],
            "x": 0.23508771929824562,
            "y": -0.20035149384885764,
            "scheduled": false
          },
          "98ce": {
            "name": "query",
            "summary": "QueryDeviceName",
            "description": "Query device name",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": "device",
                "obj": "$var.279.current_item"
              },
              "outgoing": {
                "return_data": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>query</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Query</span> Data Using 'json-query' Format"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Query</span> data using a dot/bracket notation string and a matching key/value pair."
              }
            ],
            "groups": [],
            "x": 0.3280701754385965,
            "y": -0.01054481546572935,
            "scheduled": false
          },
          "c4a9": {
            "name": "push",
            "summary": "Push Item to Array",
            "description": "Push item to a job variable array",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "job_variable": "deviceNames",
                "item_to_push": "$var.98ce.return_data"
              },
              "outgoing": {
                "job_variable_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>push</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Push</span> Item to Array"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Push</span> item to a job variable array"
              }
            ],
            "groups": [],
            "x": 0.32894736842105265,
            "y": 0.1704745166959578
          },
          "a7ac": {
            "name": "syncFrom",
            "summary": "SyncFromCEDevice",
            "description": "Sync configurations from CE device",
            "location": "Adapter",
            "locationType": "NSO",
            "app": "NSO",
            "displayName": "NSO",
            "type": "automatic",
            "variables": {
              "incoming": {
                "name": "$var.98ce.return_data",
                "adapter_id": "$var.e120.return_data"
              },
              "outgoing": {
                "result": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>syncFrom</span>"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.3515981735159817,
            "y": 0.7258953168044077,
            "scheduled": false
          },
          "187d": {
            "name": "RunCommandTemplate",
            "summary": "RunPreCheck",
            "description": "Run pre check",
            "location": "Application",
            "locationType": null,
            "app": "MOP",
            "displayName": "Command Templates",
            "type": "automatic",
            "variables": {
              "incoming": {
                "template": "IAP Artifacts L3VPN PreCheck",
                "variables": "",
                "devices": "$var.job.deviceNames"
              },
              "outgoing": {
                "mop_template_results": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>RunComm</span>andTemplate"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.4473684210526316,
            "y": -0.19332161687170474,
            "scheduled": false
          },
          "f08d": {
            "name": "viewTemplateResults",
            "summary": "ViewPreCheck",
            "description": "View precheck",
            "location": "Application",
            "app": "MOP",
            "displayName": "Command Templates",
            "type": "manual",
            "variables": {
              "incoming": {
                "mop_template_results": "$var.187d.mop_template_results"
              },
              "outgoing": {},
              "error": ""
            },
            "view": "/mop/task/viewTemplateResults",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>viewTempl</span>ateResults"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 0.6008771929824561,
            "y": -0.19507908611599298,
            "scheduled": false
          },
          "c07f": {
            "name": "evaluation",
            "summary": "EvaluationPreCheck",
            "description": "Run an evaluation to check precheck results",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "all_true_flag": false,
                "evaluation_groups": [
                  {
                    "all_true_flag": false,
                    "evaluations": [
                      {
                        "query": "result",
                        "operand_1": {
                          "variable": "mop_template_results",
                          "task": "187d"
                        },
                        "operator": "==",
                        "operand_2": {
                          "variable": true,
                          "task": "static"
                        }
                      }
                    ]
                  }
                ]
              },
              "outgoing": {
                "return_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>eval</span>uation"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Eval</span>uation"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": 0.7175438596491228,
            "y": -0.19156414762741653
          },
          "c239": {
            "name": "testInstances",
            "summary": "Dry run",
            "description": "Dry run",
            "location": "Application",
            "locationType": null,
            "app": "ServiceCog",
            "displayName": "Service Management",
            "type": "automatic",
            "variables": {
              "incoming": {
                "instance": "$var.6dd0.export",
                "options": {
                  "sync": "true"
                }
              },
              "outgoing": {
                "result": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>test</span>Instances"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Test</span> Instances"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Test</span> instances with an option."
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.8101761252446184,
            "y": -0.19421487603305784,
            "scheduled": false
          },
          "f798": {
            "name": "ViewTestService",
            "summary": "View dry run",
            "description": "View dry run",
            "location": "Application",
            "app": "ServiceCog",
            "displayName": "Service Management",
            "type": "manual",
            "variables": {
              "incoming": {
                "dry_run_results": "$var.c239.result"
              },
              "outgoing": {
                "dry_run_results": null
              },
              "error": ""
            },
            "view": "/service_management/task/ViewTestService",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>ViewTest</span>Service"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 0.9328114807566862,
            "y": -0.19421487603305784,
            "scheduled": false
          },
          "f680": {
            "name": "saveInstances",
            "summary": "Save Instances",
            "description": "Save instances with an option",
            "location": "Application",
            "locationType": null,
            "app": "ServiceCog",
            "displayName": "Service Management",
            "type": "automatic",
            "variables": {
              "incoming": {
                "instance": "$var.6dd0.export",
                "options": {
                  "sync": "true"
                }
              },
              "outgoing": {
                "result": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>save</span>Instances"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Save</span> Instances"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Save</span> instances with an option."
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 1.0619699934768427,
            "y": -0.1887052341597796,
            "scheduled": false
          },
          "97cf": {
            "name": "RunCommandTemplate",
            "summary": "RunPostCheck",
            "description": "Run post precheck",
            "location": "Application",
            "locationType": null,
            "app": "MOP",
            "displayName": "Command Templates",
            "type": "automatic",
            "variables": {
              "incoming": {
                "template": "IAP Artifacts L3VPN PostCheck",
                "variables": "",
                "devices": "$var.job.deviceNames"
              },
              "outgoing": {
                "mop_template_results": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>RunComm</span>andTemplate"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 1.193085453359426,
            "y": -0.18732782369146006,
            "scheduled": false
          },
          "a3ea": {
            "name": "runTemplatesDiff",
            "summary": "ViewPostCheckDiff",
            "description": "View precheck and post check diff",
            "location": "Application",
            "app": "MOP",
            "displayName": "Command Templates",
            "type": "manual",
            "variables": {
              "incoming": {
                "pre": "$var.187d.mop_template_results",
                "post": "$var.97cf.mop_template_results"
              },
              "outgoing": {},
              "error": ""
            },
            "view": "/mop/task/runTemplatesDiff",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>runT</span>emplatesDiff"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 1.349641226353555,
            "y": -0.1790633608815427,
            "scheduled": false
          },
          "dbbd": {
            "name": "decisionTask",
            "summary": "ViewDecisionTask",
            "description": "View decision task",
            "location": "Application",
            "app": "MOP",
            "displayName": "Command Templates",
            "type": "manual",
            "variables": {
              "incoming": {
                "title": "Something went wrong",
                "body": "Either dry run was rejected or precheck failed. Would you like to revert back to the service form or end the workflow?",
                "variables": "",
                "btn_success": "End Workflow",
                "btn_failure": "Revert Back to Form"
              },
              "outgoing": {},
              "error": ""
            },
            "view": "/mop/task/decisionTask",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>deci</span>sionTask"
              },
              {
                "key": "summary",
                "highlightString": "MOP <span class='highlight-string'>Deci</span>sion Task"
              },
              {
                "key": "description",
                "highlightString": "MOP <span class='highlight-string'>Deci</span>sion Task"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 0.822570123939987,
            "y": -0.7644628099173554,
            "scheduled": false
          },
          "90f5": {
            "name": "getDevice",
            "summary": "Get Device Details",
            "description": "Get detailed information for a specific device, based on its device name",
            "location": "Application",
            "locationType": null,
            "app": "ConfigurationManager",
            "displayName": "ConfigurationManager",
            "type": "automatic",
            "variables": {
              "incoming": {
                "name": "$var.98ce.return_data"
              },
              "outgoing": {
                "device": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>get</span><span class='highlight-string'>Device</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Get</span> <span class='highlight-string'>Device</span> <span class='highlight-string'>Details</span>"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Get</span> detailed information for a specific <span class='highlight-string'>device</span>, based on its device name"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.3378995433789954,
            "y": 0.3691460055096419,
            "scheduled": false
          },
          "e120": {
            "name": "query",
            "summary": "Query device host name",
            "description": "Query device name",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": "host",
                "obj": "$var.90f5.device"
              },
              "outgoing": {
                "return_data": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>query</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Query</span> Data Using 'json-query' Format"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Query</span> data using a dot/bracket notation string and a matching key/value pair."
              }
            ],
            "groups": [],
            "x": 0.3457273320287019,
            "y": 0.5399449035812672,
            "scheduled": false
          },
          "34d5": {
            "name": "decisionTask",
            "summary": "Error provisioning service",
            "description": "Error provisioning service",
            "location": "Application",
            "app": "MOP",
            "displayName": "Command Templates",
            "type": "manual",
            "variables": {
              "incoming": {
                "title": "Error provisioning service",
                "body": "<h2>Error provisioning service</h2><br>Please review NSO logs and choose to either go <b>Back</b> to form, or <b>End</b> workflow",
                "variables": "",
                "btn_success": "End",
                "btn_failure": "Back"
              },
              "outgoing": {},
              "error": ""
            },
            "view": "/mop/task/decisionTask",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>deci</span>sionTask"
              },
              {
                "key": "summary",
                "highlightString": "MOP <span class='highlight-string'>Deci</span>sion Task"
              },
              {
                "key": "description",
                "highlightString": "MOP <span class='highlight-string'>Deci</span>sion Task"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 1.0574037834311807,
            "y": -0.4090909090909091,
            "scheduled": false
          },
          "8fee": {
            "name": "saveInstances",
            "summary": "Rollback",
            "description": "Save instances with an option",
            "location": "Application",
            "locationType": null,
            "app": "ServiceCog",
            "displayName": "Service Management",
            "type": "automatic",
            "variables": {
              "incoming": {
                "instance": "$var.6dd0.export",
                "options": {
                  "action": "delete",
                  "sync": "true"
                }
              },
              "outgoing": {
                "result": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>save</span>Instances"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Save</span> Instances"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Save</span> instances with an option."
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 1.6123188405797102,
            "y": -0.18581560283687942,
            "scheduled": false
          },
          "a1d9": {
            "name": "decisionTask",
            "summary": "Rollback",
            "description": "Rollback",
            "location": "Application",
            "app": "MOP",
            "displayName": "Command Templates",
            "type": "manual",
            "variables": {
              "incoming": {
                "title": "Rollback",
                "body": "Do you want to rollback the configuration?",
                "variables": "",
                "btn_success": "Yes, Rollback",
                "btn_failure": "No, End Job"
              },
              "outgoing": {},
              "error": ""
            },
            "view": "/mop/task/decisionTask",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>deci</span>sionTask"
              },
              {
                "key": "summary",
                "highlightString": "MOP <span class='highlight-string'>Deci</span>sion Task"
              },
              {
                "key": "description",
                "highlightString": "MOP <span class='highlight-string'>Deci</span>sion Task"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 1.491304347826087,
            "y": -0.18014184397163122,
            "scheduled": false
          }
        },
        "transitions": {
          "279": {
            "98ce": {
              "type": "standard",
              "state": "loop"
            },
            "187d": {
              "type": "standard",
              "state": "success"
            }
          },
          "3020": {
            "3aad": {
              "type": "standard",
              "state": "success"
            }
          },
          "3699": {
            "3020": {
              "type": "standard",
              "state": "success"
            }
          },
          "8439": {
            "26a4": {
              "type": "standard",
              "state": "success"
            }
          },
          "workflow_start": {
            "8439": {
              "type": "standard",
              "state": "success"
            }
          },
          "workflow_end": {},
          "26a4": {
            "3699": {
              "type": "standard",
              "state": "success"
            },
            "d13e": {
              "type": "standard",
              "state": "success"
            }
          },
          "d13e": {
            "3020": {
              "type": "standard",
              "state": "success"
            }
          },
          "f5ef": {},
          "3aad": {
            "6dd0": {
              "type": "standard",
              "state": "success"
            }
          },
          "6dd0": {
            "b9e0": {
              "type": "standard",
              "state": "success"
            }
          },
          "b9e0": {
            "876e": {
              "type": "standard",
              "state": "success"
            }
          },
          "876e": {
            "279": {
              "type": "standard",
              "state": "success"
            }
          },
          "98ce": {
            "c4a9": {
              "type": "standard",
              "state": "success"
            }
          },
          "c4a9": {
            "90f5": {
              "type": "standard",
              "state": "success"
            }
          },
          "a7ac": {},
          "187d": {
            "f08d": {
              "type": "standard",
              "state": "success"
            }
          },
          "f08d": {
            "c07f": {
              "type": "standard",
              "state": "success"
            }
          },
          "c07f": {
            "c239": {
              "type": "standard",
              "state": "success"
            },
            "dbbd": {
              "type": "standard",
              "state": "failure"
            }
          },
          "c239": {
            "f798": {
              "type": "standard",
              "state": "success"
            }
          },
          "f798": {
            "f680": {
              "type": "standard",
              "state": "success"
            },
            "dbbd": {
              "type": "standard",
              "state": "failure"
            }
          },
          "f680": {
            "97cf": {
              "type": "standard",
              "state": "success"
            },
            "34d5": {
              "type": "standard",
              "state": "error"
            }
          },
          "62f9": {},
          "97cf": {
            "a3ea": {
              "type": "standard",
              "state": "success"
            }
          },
          "a3ea": {
            "a1d9": {
              "type": "standard",
              "state": "success"
            }
          },
          "dbbd": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            },
            "d13e": {
              "type": "revert",
              "state": "failure"
            }
          },
          "90f5": {
            "e120": {
              "type": "standard",
              "state": "success"
            }
          },
          "e120": {
            "a7ac": {
              "type": "standard",
              "state": "success"
            }
          },
          "e5ff": {},
          "34d5": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            },
            "d13e": {
              "type": "revert",
              "state": "failure"
            }
          },
          "8fee": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            }
          },
          "a1d9": {
            "8fee": {
              "type": "standard",
              "state": "success"
            },
            "workflow_end": {
              "type": "standard",
              "state": "failure"
            }
          }
        },
        "font_size": 12,
        "created": "2019-04-30T18:53:03.824Z",
        "created_by": {
          "provenance": "Local AAA",
          "username": "admin@pronghorn",
          "firstname": "admin",
          "inactive": false,
          "email": ""
        },
        "createdVersion": "5.5.9-2019.3.20",
        "groups": [],
        "last_updated": "2020-05-13T14:09:45.776Z",
        "last_updated_by": {
          "provenance": "Local AAA",
          "username": "admin@pronghorn",
          "firstname": "admin",
          "inactive": false,
          "email": ""
        },
        "lastUpdatedVersion": "5.5.9-2019.3.20",
        "type": "automation",
        "description": null,
        "tags": []
      }
    },
    {
      "type": "workflow",
      "data": {
        "name": "IAP Artifacts L3VPN Multisite Create Workflow",
        "tasks": {
          "212": {
            "name": "saveInstances",
            "summary": "SaveInstances",
            "description": "Save instances with an option.",
            "location": "Application",
            "locationType": null,
            "app": "ServiceCog",
            "displayName": "Service Management",
            "type": "automatic",
            "variables": {
              "incoming": {
                "instance": "$var.5931.export",
                "options": {
                  "sync": "true"
                }
              },
              "outgoing": {
                "result": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>saveIn</span>stances"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.9047619047619048,
            "y": -0.03305785123966942,
            "scheduled": false
          },
          "3329": {
            "name": "testInstances",
            "summary": "Dry run",
            "description": "Dry run",
            "location": "Application",
            "locationType": null,
            "app": "ServiceCog",
            "displayName": "Service Management",
            "type": "automatic",
            "variables": {
              "incoming": {
                "instance": "$var.5931.export",
                "options": {
                  "sync": "true"
                }
              },
              "outgoing": {
                "result": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>testIn</span>stances"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.6307893020221788,
            "y": -0.0440771349862259,
            "scheduled": false
          },
          "5040": {
            "name": "query",
            "summary": "QuerySites",
            "description": "Query sites",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": ":get(/IAP-Artifact-l3vpn:l3vpn).site",
                "obj": "$var.5931.export"
              },
              "outgoing": {
                "return_data": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>query</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Query</span> Data Using 'json-query' Format"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Query</span> data using a dot/bracket notation string and a matching key/value pair."
              }
            ],
            "groups": [],
            "x": 0.0639269406392694,
            "y": -0.05922865013774105,
            "scheduled": false
          },
          "5389": {
            "name": "push",
            "summary": "Push Item to Array",
            "description": "Push item to a job variable array",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "job_variable": "serviceDataTemp",
                "item_to_push": "$var.5931.export"
              },
              "outgoing": {
                "job_variable_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>push</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Push</span> Item to Array"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Push</span> item to a job variable array"
              }
            ],
            "groups": [],
            "x": -0.03457273320287019,
            "y": -0.06198347107438017
          },
          "5931": {
            "name": "ShowFormByName",
            "summary": "ViewServiceForm",
            "description": "View service form",
            "location": "Application",
            "app": "FormBuilder",
            "displayName": "FormBuilder",
            "type": "manual",
            "variables": {
              "incoming": {
                "form_name": "IAP Artifacts L3VPN Create Form",
                "instance_data": "$var.1c4e.popped_item"
              },
              "outgoing": {
                "export": null
              },
              "error": ""
            },
            "view": "/formbuilder/task/ShowFormByName",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>Show</span>FormByName"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Show</span> Form By Name"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Show</span> Form By Name"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": -0.16960208741030658,
            "y": -0.06611570247933884,
            "scheduled": false
          },
          "6183": {
            "name": "decisionTask",
            "summary": "Error running commands",
            "description": "Error running commands",
            "location": "Application",
            "app": "MOP",
            "displayName": "MOP",
            "type": "manual",
            "variables": {
              "incoming": {
                "title": "Error running commands",
                "body": "Error running commands on devices specified in form. Please make sure to pick both PE <b>AND</b> CE devices in form. You may refer to the artifact README file for further assistance.<br>Please choose to either go <b>Back</b> to form, or <b>End</b> to finish the execution of this workflow.",
                "variables": "",
                "btn_success": "End",
                "btn_failure": "Back"
              },
              "outgoing": {},
              "error": ""
            },
            "view": "/mop/task/decisionTask",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>decision</span>Task"
              },
              {
                "key": "summary",
                "highlightString": "MOP <span class='highlight-string'>Decision</span> Task"
              },
              {
                "key": "description",
                "highlightString": "MOP <span class='highlight-string'>Decision</span> Task"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 0.27266797129810827,
            "y": -0.5834564254062038,
            "scheduled": false
          },
          "6189": {
            "name": "saveInstances",
            "summary": "Rollback",
            "description": "Rollback Config",
            "location": "Application",
            "locationType": null,
            "app": "ServiceCog",
            "displayName": "Service Management",
            "type": "automatic",
            "variables": {
              "incoming": {
                "instance": "$var.5931.export",
                "options": {
                  "action": "delete",
                  "sync": "true"
                }
              },
              "outgoing": {
                "result": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>save</span><span class='highlight-string'>Instances</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Save</span> <span class='highlight-string'>Instances</span>"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Save</span> <span class='highlight-string'>instances</span> with an option."
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 1.4845679012345678,
            "y": -0.0350140056022409,
            "scheduled": false
          },
          "7910": {
            "name": "ViewTestService",
            "summary": "View dry run",
            "description": "View dry run",
            "location": "Application",
            "app": "ServiceCog",
            "displayName": "Service Management",
            "type": "manual",
            "variables": {
              "incoming": {
                "dry_run_results": "$var.3329.result"
              },
              "outgoing": {
                "dry_run_results": null
              },
              "error": ""
            },
            "view": "/service_management/task/ViewTestService",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>View</span>TestService"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>View</span> Dry Run Results"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>View</span> Dry Run Results"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 0.7579908675799086,
            "y": -0.0371900826446281,
            "scheduled": false
          },
          "workflow_start": {
            "name": "workflow_start",
            "groups": [],
            "x": -0.7723418134377038,
            "y": -0.04269972451790634
          },
          "workflow_end": {
            "name": "workflow_end",
            "groups": [],
            "x": 1.178734507501631,
            "y": -0.4534711964549483
          },
          "aaac": {
            "name": "query",
            "summary": "QueryServiceID",
            "description": "Query service id",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": ":get(/IAP-Artifact-l3vpn:l3vpn).vpn-id",
                "obj": "$var.job.instanceData"
              },
              "outgoing": {
                "return_data": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>query</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Query</span> Data Using 'json-query' Format"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Query</span> data using a dot/bracket notation string and a matching key/value pair."
              }
            ],
            "groups": [],
            "x": -0.7031963470319634,
            "y": -0.045454545454545456,
            "scheduled": false
          },
          "7ba2": {
            "name": "updateJobDescription",
            "summary": "UpdateJobDescription",
            "description": "Overwrite the job description with a new one",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "description": "$var.aaac.return_data"
              },
              "outgoing": {
                "description": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>update</span>JobDescription"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Update</span> Job Description"
              }
            ],
            "groups": [],
            "x": -0.5870841487279843,
            "y": -0.04269972451790634,
            "scheduled": false
          },
          "fdf9": {
            "name": "newVariable",
            "summary": "Create a Job Variable",
            "description": "Create a new Job variable by Job ID and assign it a value.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "name": "deviceName",
                "value": []
              },
              "outgoing": {
                "value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>new</span><span class='highlight-string'>Variable</span>"
              },
              {
                "key": "description",
                "highlightString": "Create a <span class='highlight-string'>new</span> <span class='highlight-string'>Job</span> <span class='highlight-string'>variable</span> by Job ID and assign it a value."
              },
              {
                "key": "summary",
                "highlightString": "Create a <span class='highlight-string'>Job</span> <span class='highlight-string'>Variable</span>"
              }
            ],
            "groups": [],
            "x": -0.47879973907371165,
            "y": -0.20385674931129477
          },
          "599f": {
            "name": "newVariable",
            "summary": "Create a Job Variable",
            "description": "Create a new Job variable by Job ID and assign it a value.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "name": "serviceDataTemp",
                "value": []
              },
              "outgoing": {
                "value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>new</span><span class='highlight-string'>Variable</span>"
              },
              {
                "key": "description",
                "highlightString": "Create a <span class='highlight-string'>new</span> <span class='highlight-string'>Job</span> <span class='highlight-string'>variable</span> by Job ID and assign it a value."
              },
              {
                "key": "summary",
                "highlightString": "Create a <span class='highlight-string'>Job</span> <span class='highlight-string'>Variable</span>"
              }
            ],
            "groups": [],
            "x": -0.4748858447488584,
            "y": 0.14049586776859505
          },
          "1c4e": {
            "name": "pop",
            "summary": "Array Pop",
            "description": "Pop off the end data item from a job variable array",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "job_variable": "serviceDataTemp"
              },
              "outgoing": {
                "popped_item": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>pop</span>"
              },
              {
                "key": "summary",
                "highlightString": "Array <span class='highlight-string'>Pop</span>"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Pop</span> off the end data item from a job variable array"
              }
            ],
            "groups": [],
            "x": -0.2746249184605349,
            "y": -0.06473829201101929
          },
          "18af": {
            "name": "push",
            "summary": "Push Item to Array",
            "description": "Push item to a job variable array",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "job_variable": "serviceDataTemp",
                "item_to_push": "$var.job.instanceData"
              },
              "outgoing": {
                "job_variable_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>push</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Push</span> Item to Array"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Push</span> item to a job variable array"
              }
            ],
            "groups": [],
            "x": -0.37116764514024786,
            "y": -0.05785123966942149
          },
          "f2c9": {
            "name": "forEach",
            "summary": "ForEachSite",
            "description": "Iterate over each site in an array",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "data_array": "$var.5040.return_data"
              },
              "outgoing": {
                "current_item": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>forEach</span>"
              }
            ],
            "groups": [],
            "x": 0.1415525114155251,
            "y": -0.049586776859504134,
            "scheduled": false
          },
          "b5a8": {
            "name": "query",
            "summary": "QueryCEDeviceName",
            "description": "Query CE device name",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": "ce",
                "obj": "$var.f2c9.current_item"
              },
              "outgoing": {
                "return_data": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>query</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Query</span> Data Using 'json-query' Format"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Query</span> data using a dot/bracket notation string and a matching key/value pair."
              }
            ],
            "groups": [],
            "x": 0.14220482713633398,
            "y": 0.1349862258953168,
            "scheduled": false
          },
          "7a0d": {
            "name": "push",
            "summary": "Push Item to Array",
            "description": "Push item to a job variable array",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "job_variable": "deviceName",
                "item_to_push": "$var.b5a8.return_data"
              },
              "outgoing": {
                "job_variable_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>push</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Push</span> Item to Array"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Push</span> item to a job variable array"
              }
            ],
            "groups": [],
            "x": 0.15655577299412915,
            "y": 0.3044077134986226
          },
          "73af": {
            "name": "query",
            "summary": "QueryPEDeviceName",
            "description": "Query PE device name",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": "wan-link[0].pe",
                "obj": "$var.f2c9.current_item"
              },
              "outgoing": {
                "return_data": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>query</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Query</span> Data Using 'json-query' Format"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Query</span> data using a dot/bracket notation string and a matching key/value pair."
              }
            ],
            "groups": [],
            "x": 0.15590345727332028,
            "y": 0.4972451790633609,
            "scheduled": false
          },
          "9d63": {
            "name": "push",
            "summary": "Push Item to Array",
            "description": "Push item to a job variable array",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "job_variable": "deviceName",
                "item_to_push": "$var.73af.return_data"
              },
              "outgoing": {
                "job_variable_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>push</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Push</span> Item to Array"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Push</span> item to a job variable array"
              }
            ],
            "groups": [],
            "x": 0.16568819308545335,
            "y": 0.6928374655647382
          },
          "bf0": {
            "name": "syncFrom",
            "summary": "SyncFromPEDevice",
            "description": "Sync configurations from PE device",
            "location": "Adapter",
            "locationType": "NSO",
            "app": "NSO",
            "displayName": "NSO",
            "type": "automatic",
            "variables": {
              "incoming": {
                "name": "$var.73af.return_data",
                "adapter_id": "$var.d2d9.return_data"
              },
              "outgoing": {
                "result": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>sync</span>From"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Sync</span> from a Device"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Sync</span> configurations from a specific device"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.24722765818656228,
            "y": 1.2947658402203857,
            "scheduled": false
          },
          "c732": {
            "name": "syncFrom",
            "summary": "SyncFromCEDevice",
            "description": "Sync configurations from CE device",
            "location": "Adapter",
            "locationType": "NSO",
            "app": "NSO",
            "displayName": "NSO",
            "type": "automatic",
            "variables": {
              "incoming": {
                "name": "$var.b5a8.return_data",
                "adapter_id": "$var.37a0.return_data"
              },
              "outgoing": {
                "result": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>sync</span>From"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Sync</span> from a Device"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Sync</span> configurations from a specific device"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.11806914546640573,
            "y": 1.290633608815427,
            "scheduled": false
          },
          "4f5a": {
            "name": "RunCommandTemplate",
            "summary": "RunPreCheck",
            "description": "Run pre check",
            "location": "Application",
            "locationType": null,
            "app": "MOP",
            "displayName": "MOP",
            "type": "automatic",
            "variables": {
              "incoming": {
                "template": "IAP Artifacts L3VPN PreCheck",
                "variables": "",
                "devices": "$var.job.deviceName"
              },
              "outgoing": {
                "mop_template_results": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>Run</span><span class='highlight-string'>Command</span>Template"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Run</span> <span class='highlight-string'>Command</span> Template"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Run</span> a <span class='highlight-string'>Command</span> Template against devices."
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.2700587084148728,
            "y": -0.05647382920110193,
            "scheduled": false
          },
          "79c2": {
            "name": "viewTemplateResults",
            "summary": "ViewPreCheck",
            "description": "View precheck",
            "location": "Application",
            "app": "MOP",
            "displayName": "MOP",
            "type": "manual",
            "variables": {
              "incoming": {
                "mop_template_results": "$var.4f5a.mop_template_results"
              },
              "outgoing": {},
              "error": ""
            },
            "view": "/mop/task/viewTemplateResults",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>view</span><span class='highlight-string'>Temp</span>lateResults"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>View</span> MOP <span class='highlight-string'>Temp</span>late Results"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>View</span> MOP <span class='highlight-string'>Temp</span>late Results"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 0.4207436399217221,
            "y": -0.05234159779614325,
            "scheduled": false
          },
          "bd01": {
            "name": "evaluation",
            "summary": "EvaluationPreCheck",
            "description": "Run an evaluation to check precheck results",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "all_true_flag": false,
                "evaluation_groups": [
                  {
                    "all_true_flag": false,
                    "evaluations": [
                      {
                        "query": "result",
                        "operand_1": {
                          "variable": "mop_template_results",
                          "task": "4f5a"
                        },
                        "operator": "==",
                        "operand_2": {
                          "variable": true,
                          "task": "static"
                        }
                      }
                    ]
                  }
                ]
              },
              "outgoing": {
                "return_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>eval</span>uation"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Eval</span>uation"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": 0.5342465753424658,
            "y": -0.05785123966942149
          },
          "b308": {
            "name": "decisionTask",
            "summary": "MOP Decision Task",
            "description": "MOP Decision Task",
            "location": "Application",
            "app": "MOP",
            "displayName": "MOP",
            "type": "manual",
            "variables": {
              "incoming": {
                "title": "",
                "body": "",
                "variables": "",
                "btn_success": "",
                "btn_failure": ""
              },
              "outgoing": {},
              "error": ""
            },
            "view": "/mop/task/decisionTask",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>decision</span>Task"
              },
              {
                "key": "summary",
                "highlightString": "MOP <span class='highlight-string'>Decision</span> Task"
              },
              {
                "key": "description",
                "highlightString": "MOP <span class='highlight-string'>Decision</span> Task"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 0.6170906718851924,
            "y": -0.3988183161004431,
            "scheduled": false
          },
          "11b0": {
            "name": "RunCommandTemplate",
            "summary": "RunPostCheck",
            "description": "Run post check",
            "location": "Application",
            "locationType": null,
            "app": "MOP",
            "displayName": "MOP",
            "type": "automatic",
            "variables": {
              "incoming": {
                "template": "IAP Artifacts L3VPN PostCheck",
                "variables": "",
                "devices": "$var.job.deviceName"
              },
              "outgoing": {
                "mop_template_results": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "Run<span class='highlight-string'>Command</span>Template"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Command</span> Template"
              },
              {
                "key": "description",
                "highlightString": "Run a <span class='highlight-string'>Command</span> Template against devices."
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 1.0313111545988258,
            "y": -0.03168044077134986,
            "scheduled": false
          },
          "82fb": {
            "name": "runTemplatesDiff",
            "summary": "ViewPostCheckDiff",
            "description": "View difference between pre and post checks",
            "location": "Application",
            "app": "MOP",
            "displayName": "MOP",
            "type": "manual",
            "variables": {
              "incoming": {
                "pre": "$var.4f5a.mop_template_results",
                "post": "$var.11b0.mop_template_results"
              },
              "outgoing": {},
              "error": ""
            },
            "view": "/mop/task/runTemplatesDiff",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "runTemplates<span class='highlight-string'>Diff</span>"
              },
              {
                "key": "summary",
                "highlightString": "MOP <span class='highlight-string'>Diff</span> Config"
              },
              {
                "key": "description",
                "highlightString": "MOP <span class='highlight-string'>Diff</span> Config"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 1.1852576647097195,
            "y": -0.03994490358126722,
            "scheduled": false
          },
          "932b": {
            "name": "getDevice",
            "summary": "Get CE Device Details",
            "description": "Get detailed information for a specific device, based on its device name",
            "location": "Application",
            "locationType": null,
            "app": "ConfigurationManager",
            "displayName": "ConfigurationManager",
            "type": "automatic",
            "variables": {
              "incoming": {
                "name": "$var.b5a8.return_data"
              },
              "outgoing": {
                "device": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>get</span><span class='highlight-string'>Device</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Get</span> <span class='highlight-string'>Device</span> <span class='highlight-string'>Details</span>"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Get</span> detailed information for a specific <span class='highlight-string'>device</span>, based on its device name"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.1141552511415525,
            "y": 0.9049586776859504,
            "scheduled": false
          },
          "213d": {
            "name": "getDevice",
            "summary": "Get PE Device Details",
            "description": "Get detailed information for a specific device, based on its device name",
            "location": "Application",
            "locationType": null,
            "app": "ConfigurationManager",
            "displayName": "ConfigurationManager",
            "type": "automatic",
            "variables": {
              "incoming": {
                "name": "$var.73af.return_data"
              },
              "outgoing": {
                "device": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>get</span><span class='highlight-string'>Device</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Get</span> <span class='highlight-string'>Device</span> <span class='highlight-string'>Details</span>"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Get</span> detailed information for a specific <span class='highlight-string'>device</span>, based on its device name"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.2328767123287671,
            "y": 0.9104683195592287,
            "scheduled": false
          },
          "37a0": {
            "name": "query",
            "summary": "Query CE device host name",
            "description": "Query PE device name",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": "host",
                "obj": "$var.932b.device"
              },
              "outgoing": {
                "return_data": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>query</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Query</span> Data Using 'json-query' Format"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Query</span> data using a dot/bracket notation string and a matching key/value pair."
              }
            ],
            "groups": [],
            "x": 0.11089367253750815,
            "y": 1.0977961432506886,
            "scheduled": false
          },
          "d2d9": {
            "name": "query",
            "summary": "Query PE device host name",
            "description": "Query PE device name",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": "host",
                "obj": "$var.213d.device"
              },
              "outgoing": {
                "return_data": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>query</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Query</span> Data Using 'json-query' Format"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Query</span> data using a dot/bracket notation string and a matching key/value pair."
              }
            ],
            "groups": [],
            "x": 0.23939986953685582,
            "y": 1.1101928374655647,
            "scheduled": false
          },
          "de9e": {
            "name": "decisionTask",
            "summary": "Error provisioning service",
            "description": "Error provisioning service",
            "location": "Application",
            "app": "MOP",
            "displayName": "Command Templates",
            "type": "manual",
            "variables": {
              "incoming": {
                "title": "Error provisioning service",
                "body": "<h2>Error provisioning service</h2><br>Please review NSO logs and choose to either go <b>Back</b> to form, or <b>End</b> workflow",
                "variables": "",
                "btn_success": "End",
                "btn_failure": "Back"
              },
              "outgoing": {},
              "error": ""
            },
            "view": "/mop/task/decisionTask",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>decis</span>ionTask"
              },
              {
                "key": "summary",
                "highlightString": "MOP <span class='highlight-string'>Decis</span>ion Task"
              },
              {
                "key": "description",
                "highlightString": "MOP <span class='highlight-string'>Decis</span>ion Task"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 0.903457273320287,
            "y": -0.29246676514032494,
            "scheduled": false
          },
          "b773": {
            "name": "decisionTask",
            "summary": "Rollback",
            "description": "MOP Decision Task",
            "location": "Application",
            "app": "MOP",
            "displayName": "Command Templates",
            "type": "manual",
            "variables": {
              "incoming": {
                "title": "Rollback",
                "body": "Do you want to rollback the config?",
                "variables": "",
                "btn_success": "Yes, Rollback",
                "btn_failure": "No, End Job"
              },
              "outgoing": {},
              "error": ""
            },
            "view": "/mop/task/decisionTask",
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>decisionTask</span>"
              }
            ],
            "groups": [
              {
                "name": "Itential Artifact",
                "description": "This group is to be used in conjunction with all Itential generated Artifacts",
                "provenance": "Pronghorn"
              }
            ],
            "x": 1.3074074074074074,
            "y": -0.03361344537815126,
            "scheduled": false
          },
          "8b4c": {
            "name": "testInstances",
            "summary": "Rollback Test",
            "description": "Rollback Test",
            "location": "Application",
            "locationType": null,
            "app": "ServiceCog",
            "displayName": "Service Management",
            "type": "automatic",
            "variables": {
              "incoming": {
                "instance": "$var.5931.export",
                "options": {
                  "action": "delete",
                  "sync": "true"
                }
              },
              "outgoing": {
                "result": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>testInstances</span>"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 1.4030864197530863,
            "y": -0.037815126050420166,
            "scheduled": false
          }
        },
        "transitions": {
          "212": {
            "11b0": {
              "type": "standard",
              "state": "success"
            },
            "de9e": {
              "type": "standard",
              "state": "error"
            }
          },
          "3329": {
            "7910": {
              "type": "standard",
              "state": "success"
            }
          },
          "5040": {
            "f2c9": {
              "type": "standard",
              "state": "success"
            }
          },
          "5389": {
            "5040": {
              "type": "standard",
              "state": "success"
            },
            "1c4e": {
              "type": "revert",
              "state": "failure"
            }
          },
          "5931": {
            "5389": {
              "type": "standard",
              "state": "success"
            }
          },
          "6183": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            },
            "fdf9": {
              "type": "revert",
              "state": "failure"
            }
          },
          "6189": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            }
          },
          "7910": {
            "212": {
              "type": "standard",
              "state": "success"
            },
            "b308": {
              "type": "standard",
              "state": "failure"
            }
          },
          "workflow_start": {
            "aaac": {
              "type": "standard",
              "state": "success"
            }
          },
          "workflow_end": {},
          "aaac": {
            "7ba2": {
              "type": "standard",
              "state": "success"
            }
          },
          "7ba2": {
            "fdf9": {
              "type": "standard",
              "state": "success"
            },
            "599f": {
              "type": "standard",
              "state": "success"
            }
          },
          "fdf9": {
            "18af": {
              "type": "standard",
              "state": "success"
            }
          },
          "599f": {
            "18af": {
              "type": "standard",
              "state": "success"
            }
          },
          "1c4e": {
            "5931": {
              "type": "standard",
              "state": "success"
            }
          },
          "caea": {},
          "18af": {
            "1c4e": {
              "type": "standard",
              "state": "success"
            }
          },
          "87c2": {},
          "f2c9": {
            "b5a8": {
              "type": "standard",
              "state": "loop"
            },
            "4f5a": {
              "type": "standard",
              "state": "success"
            }
          },
          "b5a8": {
            "7a0d": {
              "type": "standard",
              "state": "success"
            }
          },
          "7a0d": {
            "73af": {
              "type": "standard",
              "state": "success"
            }
          },
          "73af": {
            "9d63": {
              "type": "standard",
              "state": "success"
            }
          },
          "9d63": {
            "932b": {
              "type": "standard",
              "state": "success"
            },
            "213d": {
              "type": "standard",
              "state": "success"
            }
          },
          "bf0": {},
          "c732": {},
          "4f5a": {
            "6183": {
              "type": "standard",
              "state": "error"
            },
            "79c2": {
              "type": "standard",
              "state": "success"
            }
          },
          "79c2": {
            "bd01": {
              "type": "standard",
              "state": "success"
            }
          },
          "bd01": {
            "3329": {
              "type": "standard",
              "state": "success"
            },
            "b308": {
              "type": "standard",
              "state": "failure"
            }
          },
          "b308": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            },
            "fdf9": {
              "type": "revert",
              "state": "failure"
            }
          },
          "11b0": {
            "82fb": {
              "type": "standard",
              "state": "success"
            }
          },
          "82fb": {
            "b773": {
              "type": "standard",
              "state": "success"
            }
          },
          "932b": {
            "37a0": {
              "type": "standard",
              "state": "success"
            }
          },
          "213d": {
            "d2d9": {
              "type": "standard",
              "state": "success"
            }
          },
          "37a0": {
            "c732": {
              "type": "standard",
              "state": "success"
            }
          },
          "d2d9": {
            "bf0": {
              "type": "standard",
              "state": "success"
            }
          },
          "de9e": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            },
            "fdf9": {
              "type": "revert",
              "state": "failure"
            }
          },
          "b773": {
            "8b4c": {
              "type": "standard",
              "state": "success"
            },
            "workflow_end": {
              "type": "standard",
              "state": "failure"
            }
          },
          "8b4c": {
            "6189": {
              "type": "standard",
              "state": "success"
            }
          }
        },
        "font_size": 12,
        "created": "2019-04-30T19:28:46.363Z",
        "created_by": {
          "provenance": "Local AAA",
          "username": "admin@pronghorn",
          "firstname": "admin",
          "inactive": false,
          "email": ""
        },
        "createdVersion": "5.5.9-2019.3.20",
        "groups": [],
        "last_updated": "2020-05-13T14:07:00.316Z",
        "last_updated_by": {
          "provenance": "Local AAA",
          "username": "admin@pronghorn",
          "firstname": "admin",
          "inactive": false,
          "email": ""
        },
        "lastUpdatedVersion": "5.5.9-2019.3.20",
        "type": "automation",
        "description": null,
        "tags": []
      }
    },
    {
      "type": "mop-template",
      "data": {
        "_id": "IAP Artifacts L3VPN CE PreCheck",
        "name": "IAP Artifacts L3VPN CE PreCheck",
        "os": "",
        "passRule": true,
        "ignoreWarnings": false,
        "commands": [
          {
            "command": "show run | i GigabitEthernet",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ]
          },
          {
            "command": "show version",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ]
          },
          {
            "command": "show history",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ]
          },
          {
            "command": "show arp",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ]
          }
        ],
        "created": 1547561268402,
        "createdBy": "admin@pronghorn",
        "lastUpdated": 1547570953575,
        "lastUpdatedBy": "admin@pronghorn"
      }
    },
    {
      "type": "mop-template",
      "data": {
        "_id": "IAP Artifacts L3VPN PE PreCheck",
        "name": "IAP Artifacts L3VPN PE PreCheck",
        "os": "",
        "passRule": true,
        "ignoreWarnings": false,
        "commands": [
          {
            "command": "show run",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ],
            "tempCommand": "show run",
            "ruleValues": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ]
          },
          {
            "command": "show arp",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error",
                "evaluation": "pass"
              }
            ],
            "tempCommand": "show arp",
            "ruleValues": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ]
          }
        ],
        "created": 1547561296508,
        "createdBy": "admin@pronghorn",
        "lastUpdated": 1547578544114,
        "lastUpdatedBy": "admin@pronghorn",
        "varMap": {}
      }
    },
    {
      "type": "mop-template",
      "data": {
        "_id": "IAP Artifacts L3VPN PreCheck",
        "name": "IAP Artifacts L3VPN PreCheck",
        "os": "",
        "passRule": true,
        "ignoreWarnings": false,
        "commands": [
          {
            "command": "show run",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ]
          }
        ],
        "created": 1547644051946,
        "createdBy": "admin@pronghorn",
        "lastUpdated": 1547644051946,
        "lastUpdatedBy": "admin@pronghorn"
      }
    },
    {
      "type": "mop-template",
      "data": {
        "_id": "IAP Artifacts L3VPN PostCheck",
        "name": "IAP Artifacts L3VPN PostCheck",
        "os": "",
        "passRule": true,
        "ignoreWarnings": false,
        "commands": [
          {
            "command": "show run",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ]
          }
        ],
        "created": 1547561315653,
        "createdBy": "admin@pronghorn",
        "lastUpdated": 1547644086676,
        "lastUpdatedBy": "admin@pronghorn"
      }
    },
    {
      "type": "forms",
      "data": {
        "name": "IAP Artifacts L3VPN Create Form",
        "children": [
          {
            "properties": {
              "type": "uint32",
              "min": "0",
              "max": "4.294967295e+09",
              "prefix": ""
            },
            "type": "field",
            "name": "vpn-id",
            "description": "Unique Service ID",
            "element": "{\"type\":\"service_model\",\"id\":{\"name\":\"/IAP-Artifact-l3vpn:l3vpn\"}}",
            "isKey": true,
            "source_type": "service_model",
            "source": "/IAP-Artifact-l3vpn:l3vpn",
            "id": "3725c0b9-21e2-4b45-b33d-fcfbbe8ce4b3",
            "yangkey": "",
            "key": "/IAP-Artifact-l3vpn:l3vpn.vpn-id",
            "default": 123456
          },
          {
            "properties": {
              "type": "string",
              "prefix": "",
              "regex": "[a-zA-Z0-9_\\-]+"
            },
            "type": "field",
            "name": "vpn-name",
            "description": "L3VPN Name (Pattern: 'a-zA-Z9_-')",
            "element": "{\"type\":\"service_model\",\"id\":{\"name\":\"/IAP-Artifact-l3vpn:l3vpn\"}}",
            "source_type": "service_model",
            "source": "/IAP-Artifact-l3vpn:l3vpn",
            "id": "bcabf0ef-797c-495f-9fd7-9106302b2d8c",
            "yangkey": "",
            "key": "/IAP-Artifact-l3vpn:l3vpn.vpn-name",
            "default": "testingName"
          },
          {
            "properties": {
              "type": "string",
              "prefix": ""
            },
            "type": "field",
            "name": "description",
            "description": "L3VPN service description",
            "element": "{\"type\":\"service_model\",\"id\":{\"name\":\"/IAP-Artifact-l3vpn:l3vpn\"}}",
            "source_type": "service_model",
            "source": "/IAP-Artifact-l3vpn:l3vpn",
            "id": "056faf6a-1bad-474b-acde-4434d54d88dd",
            "yangkey": "",
            "key": "/IAP-Artifact-l3vpn:l3vpn.description",
            "default": "testingDescription"
          },
          {
            "children": [
              {
                "properties": {
                  "type": "uint32",
                  "min": "0",
                  "max": "4.294967295e+09",
                  "prefix": ""
                },
                "type": "field",
                "name": "site-id",
                "id": "d7799121-a08f-49b4-a45d-ba43a70ac3e0",
                "isKey": true,
                "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].site-id",
                "source": "/IAP-Artifact-l3vpn:l3vpn",
                "source_type": "service_model",
                "default": 1
              },
              {
                "properties": {
                  "type": "leafref",
                  "prefix": "",
                  "path": "/ncs:devices/ncs:device/ncs:name",
                  "enforce": true
                },
                "type": "field",
                "name": "ce",
                "id": "688427a0-703c-459d-9ec6-fff4f7d1bcd9",
                "yangkey": "",
                "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].ce",
                "source": "/IAP-Artifact-l3vpn:l3vpn",
                "source_type": "service_model",
                "default": ""
              },
              {
                "properties": {
                  "type": "string",
                  "prefix": ""
                },
                "type": "field",
                "name": "site-description",
                "description": "Description for the L3VPN Site",
                "id": "8673336f-303d-47a3-9f64-1023faeb4b3d",
                "yangkey": "",
                "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].site-description",
                "source": "/IAP-Artifact-l3vpn:l3vpn",
                "source_type": "service_model",
                "default": "testingSiteDescription"
              },
              {
                "children": [
                  {
                    "properties": {
                      "type": "string",
                      "prefix": ""
                    },
                    "type": "field",
                    "name": "lan-interface-name",
                    "description": "LAN/Customer GigE Interface",
                    "id": "242c199f-366b-41da-a16c-96b8a6236603",
                    "isKey": true,
                    "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].lan-link[0].lan-interface-name",
                    "source": "/IAP-Artifact-l3vpn:l3vpn",
                    "source_type": "service_model",
                    "default": "0/1"
                  },
                  {
                    "properties": {
                      "type": "tailf:ipv4-address-and-prefix-length",
                      "prefix": ""
                    },
                    "type": "field",
                    "name": "lan-ip",
                    "description": "IPv4 format with CIDR",
                    "id": "9c6535c5-389a-4cbe-a327-8d198f75bbd5",
                    "yangkey": "",
                    "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].lan-link[0].lan-ip",
                    "source": "/IAP-Artifact-l3vpn:l3vpn",
                    "source_type": "service_model",
                    "default": "192.0.2.0/21"
                  },
                  {
                    "properties": {
                      "type": "string",
                      "prefix": ""
                    },
                    "type": "field",
                    "name": "lan-description",
                    "description": "Description for the LAN",
                    "id": "e73b86e5-7c24-4ab2-8c18-b5c8a265f4bc",
                    "yangkey": "",
                    "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].lan-link[0].lan-description",
                    "source": "/IAP-Artifact-l3vpn:l3vpn",
                    "source_type": "service_model",
                    "default": "testingLanDescription"
                  }
                ],
                "type": "table",
                "name": "lan-link",
                "properties": {},
                "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].lan-link",
                "id": "36b35e37-9464-48b2-a7d1-b4900f5aefe8",
                "yangkey": "lan-interface-name",
                "source": "/IAP-Artifact-l3vpn:l3vpn",
                "source_type": "service_model"
              },
              {
                "children": [
                  {
                    "properties": {
                      "type": "leafref",
                      "prefix": "",
                      "path": "/ncs:devices/ncs:device/ncs:name",
                      "enforce": true
                    },
                    "type": "field",
                    "name": "pe",
                    "id": "b6553482-2ac5-4fda-922f-dacc332d16f5",
                    "isKey": true,
                    "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].wan-link[0].pe",
                    "source": "/IAP-Artifact-l3vpn:l3vpn",
                    "source_type": "service_model"
                  },
                  {
                    "properties": {
                      "type": "string",
                      "prefix": ""
                    },
                    "type": "field",
                    "name": "pe-interface-name",
                    "description": "PE to CE GigE Interface",
                    "id": "8d8664e2-6881-47f6-8220-5c24bac510b8",
                    "isKey": true,
                    "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].wan-link[0].pe-interface-name",
                    "source": "/IAP-Artifact-l3vpn:l3vpn",
                    "source_type": "service_model",
                    "default": "0/0/0/1"
                  },
                  {
                    "properties": {
                      "type": "uint32",
                      "min": "0",
                      "max": "4.294967295e+09",
                      "prefix": ""
                    },
                    "type": "field",
                    "name": "vlan",
                    "description": "VLAN ID",
                    "id": "060134a5-117a-40b9-9539-de2856f83952",
                    "yangkey": "",
                    "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].wan-link[0].vlan",
                    "source": "/IAP-Artifact-l3vpn:l3vpn",
                    "source_type": "service_model",
                    "default": 21
                  },
                  {
                    "properties": {
                      "type": "uint32",
                      "min": "0",
                      "max": "4.294967295e+09",
                      "prefix": ""
                    },
                    "type": "field",
                    "name": "pe-as-num",
                    "id": "881bf328-0f3b-42cb-906b-4502355b40b6",
                    "yangkey": "",
                    "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].wan-link[0].pe-as-num",
                    "source": "/IAP-Artifact-l3vpn:l3vpn",
                    "source_type": "service_model",
                    "default": 324
                  },
                  {
                    "properties": {
                      "type": "tailf:ipv4-address-and-prefix-length",
                      "prefix": ""
                    },
                    "type": "field",
                    "name": "pe-router-ip",
                    "description": "IPv4 format with CIDR",
                    "id": "2233d56e-b8ce-4b1c-83f7-e33fef08eea9",
                    "yangkey": "",
                    "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].wan-link[0].pe-router-ip",
                    "source": "/IAP-Artifact-l3vpn:l3vpn",
                    "source_type": "service_model",
                    "default": "192.0.2.0/21"
                  },
                  {
                    "properties": {
                      "type": "tailf:ipv4-address-and-prefix-length",
                      "prefix": ""
                    },
                    "type": "field",
                    "name": "pe-ip",
                    "description": "IPv4 format with CIDR",
                    "id": "6075d0d7-9193-4e2a-a286-f1f57557a33e",
                    "yangkey": "",
                    "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].wan-link[0].pe-ip",
                    "source": "/IAP-Artifact-l3vpn:l3vpn",
                    "source_type": "service_model",
                    "default": "192.0.2.0/21"
                  },
                  {
                    "properties": {
                      "type": "string",
                      "prefix": ""
                    },
                    "type": "field",
                    "name": "ce-wan-interface-name",
                    "description": "CE to PE GigE Interface",
                    "id": "97458d3d-4fc5-45c8-bc11-08b4448c4aa2",
                    "yangkey": "",
                    "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].wan-link[0].ce-wan-interface-name",
                    "source": "/IAP-Artifact-l3vpn:l3vpn",
                    "source_type": "service_model",
                    "default": "0/0"
                  },
                  {
                    "properties": {
                      "type": "tailf:ipv4-address-and-prefix-length",
                      "prefix": ""
                    },
                    "type": "field",
                    "name": "ce-wan-ip",
                    "description": "IPv4 format with CIDR",
                    "id": "eff72a33-47b2-4749-9efd-d40654f719eb",
                    "yangkey": "",
                    "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].wan-link[0].ce-wan-ip",
                    "source": "/IAP-Artifact-l3vpn:l3vpn",
                    "source_type": "service_model",
                    "default": "192.0.2.0/21"
                  },
                  {
                    "properties": {
                      "type": "string",
                      "prefix": ""
                    },
                    "type": "field",
                    "name": "wan-description",
                    "description": "Description for the WAN",
                    "id": "c9bd0231-5db2-4fe4-87a1-fa75422db67f",
                    "yangkey": "",
                    "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].wan-link[0].wan-description",
                    "source": "/IAP-Artifact-l3vpn:l3vpn",
                    "source_type": "service_model",
                    "default": "testingWanDescription"
                  }
                ],
                "type": "table",
                "name": "wan-link",
                "properties": {},
                "key": "/IAP-Artifact-l3vpn:l3vpn.site[0].wan-link",
                "id": "5514e799-390c-4877-9104-6a819aedb712",
                "yangkey": "pe pe-interface-name",
                "source": "/IAP-Artifact-l3vpn:l3vpn",
                "source_type": "service_model"
              }
            ],
            "type": "table",
            "name": "site",
            "properties": {},
            "description": "L3VPN site location",
            "key": "/IAP-Artifact-l3vpn:l3vpn.site",
            "min-elements": "1",
            "element": "{\"type\":\"service_model\",\"id\":{\"name\":\"/IAP-Artifact-l3vpn:l3vpn\"}}",
            "source_type": "service_model",
            "source": "/IAP-Artifact-l3vpn:l3vpn",
            "id": "c706e909-671f-4f07-bdc9-dbe3e82421f4",
            "yangkey": "site-id"
          }
        ],
        "elements": [],
        "created": "2019-01-15T12:59:44.050Z",
        "createdBy": {
          "0": "5",
          "1": "c",
          "2": "9",
          "3": "c",
          "4": "3",
          "5": "b",
          "6": "8",
          "7": "4",
          "8": "a",
          "9": "9",
          "10": "2",
          "11": "c",
          "12": "f",
          "13": "7",
          "14": "2",
          "15": "2",
          "16": "9",
          "17": "4",
          "18": "4",
          "19": "8",
          "20": "7",
          "21": "8",
          "22": "c",
          "23": "e",
          "inactive": true
        },
        "groups": [],
        "lastUpdated": "2019-12-03T17:48:11.455Z",
        "lastUpdatedBy": {
          "provenance": "Local AAA",
          "username": "admin@pronghorn",
          "firstname": "admin",
          "inactive": false,
          "email": ""
        },
        "tags": []
      }
    },
    {
      "type": "forms",
      "data": {
        "name": "IAP Artifacts L2VPN Create Form",
        "children": [
          {
            "properties": {
              "type": "int32",
              "min": "-2147483648",
              "max": "2.147483648e+09",
              "prefix": ""
            },
            "type": "field",
            "name": "id",
            "description": "Unique Service ID",
            "element": "{\"type\":\"service_model\",\"id\":{\"name\":\"/ncs:services/IAP-Artifact-l2vpn:l2vpn\"}}",
            "isKey": true,
            "source_type": "service_model",
            "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
            "id": "638e0cfd-3ade-4099-9d5d-53790e561cbc",
            "yangkey": "",
            "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.id",
            "default": 123456
          },
          {
            "properties": {
              "type": "uint32",
              "min": "0",
              "max": "4.294967295e+09",
              "prefix": ""
            },
            "type": "field",
            "name": "bandwidth",
            "description": "Bandwidth",
            "default": "10",
            "element": "{\"type\":\"service_model\",\"id\":{\"name\":\"/ncs:services/IAP-Artifact-l2vpn:l2vpn\"}}",
            "source_type": "service_model",
            "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
            "id": "07251543-51d6-4cf8-b697-46085e3a4482",
            "yangkey": "",
            "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.bandwidth"
          },
          {
            "properties": {
              "type": "uint32",
              "min": "0",
              "max": "4.294967295e+09",
              "prefix": ""
            },
            "type": "field",
            "name": "pwid",
            "description": "Psudo-Wire ID",
            "default": "4000",
            "element": "{\"type\":\"service_model\",\"id\":{\"name\":\"/ncs:services/IAP-Artifact-l2vpn:l2vpn\"}}",
            "source_type": "service_model",
            "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
            "id": "048ef74a-a714-4244-a8d5-f87efe08446d",
            "yangkey": "",
            "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.pwid"
          },
          {
            "properties": {
              "type": "enumeration",
              "prefix": "",
              "enums": [
                {
                  "name": "Q-5rt-75mc-20sd",
                  "value": "Q-5rt-75mc-20sd"
                },
                {
                  "name": "Q-5rt-75bc-20sd",
                  "value": "Q-5rt-75bc-20sd"
                },
                {
                  "name": "Q-5rt-95sd",
                  "value": "Q-5rt-95sd"
                },
                {
                  "name": "Q-5rt-60mc-30bc-5sd",
                  "value": "Q-5rt-60mc-30bc-5sd"
                },
                {
                  "name": "Q-10rt-90sd",
                  "value": "Q-10rt-90sd"
                },
                {
                  "name": "Q-10rt-60mc-30sd",
                  "value": "Q-10rt-60mc-30sd"
                },
                {
                  "name": "Q-10rt-60bc-30sd",
                  "value": "Q-10rt-60bc-30sd"
                },
                {
                  "name": "Q-10rt-50mc-30bc-10sd",
                  "value": "Q-10rt-50mc-30bc-10sd"
                },
                {
                  "name": "Q-25rt-70mc-5sd",
                  "value": "Q-25rt-70mc-5sd"
                },
                {
                  "name": "Q-25rt-70bc-5sd",
                  "value": "Q-25rt-70bc-5sd"
                },
                {
                  "name": "Q-50rt-40mc-10sd",
                  "value": "Q-50rt-40mc-10sd"
                },
                {
                  "name": "Q-50rt-40bc-10sd",
                  "value": "Q-50rt-40bc-10sd"
                },
                {
                  "name": "Q-75rt-20mc-5sd",
                  "value": "Q-75rt-20mc-5sd"
                },
                {
                  "name": "Q-75rt-20bc-5sd",
                  "value": "Q-75rt-20bc-5sd"
                },
                {
                  "name": "Q-90rt-8mc-2sd",
                  "value": "Q-90rt-8mc-2sd"
                },
                {
                  "name": "Q-90rt-8bc-2sd",
                  "value": "Q-90rt-8bc-2sd"
                },
                {
                  "name": "Q-90rt-10sd",
                  "value": "Q-90rt-10sd"
                },
                {
                  "name": "Q-25rt-40mc-30bc-5sd",
                  "value": "Q-25rt-40mc-30bc-5sd"
                },
                {
                  "name": "Q-50rt-25mc-20bc-5sd",
                  "value": "Q-50rt-25mc-20bc-5sd"
                },
                {
                  "name": "Q-75rt-10mc-10bc-5sd",
                  "value": "Q-75rt-10mc-10bc-5sd"
                },
                {
                  "name": "Q-50mc-50sd",
                  "value": "Q-50mc-50sd"
                },
                {
                  "name": "Q-50bc-50sd",
                  "value": "Q-50bc-50sd"
                },
                {
                  "name": "Q-50mc-25bc-25sd",
                  "value": "Q-50mc-25bc-25sd"
                }
              ]
            },
            "type": "field",
            "name": "qos_policy",
            "description": "QoS Profile",
            "element": "{\"type\":\"service_model\",\"id\":{\"name\":\"/ncs:services/IAP-Artifact-l2vpn:l2vpn\"}}",
            "source_type": "service_model",
            "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
            "id": "29d5f633-d1e7-4e7e-90b7-53bb1e2a8b9b",
            "yangkey": "",
            "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.qos_policy",
            "default": "Q-10rt-60mc-30sd"
          },
          {
            "children": [
              {
                "properties": {
                  "type": "enumeration",
                  "prefix": "",
                  "enums": [
                    {
                      "name": "Atlanta",
                      "value": "Atlanta"
                    },
                    {
                      "name": "Dallas",
                      "value": "Dallas"
                    },
                    {
                      "name": "Detroit",
                      "value": "Detroit"
                    },
                    {
                      "name": "Las Vegas",
                      "value": "Las Vegas"
                    },
                    {
                      "name": "New York",
                      "value": "New York"
                    },
                    {
                      "name": "Seattle",
                      "value": "Seattle"
                    },
                    {
                      "name": "Tampa",
                      "value": "Tampa"
                    }
                  ]
                },
                "type": "field",
                "name": "location",
                "description": "Location of Service",
                "id": "74a28dd4-f9da-42d3-b5c8-d13869dc7592",
                "isKey": true,
                "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.location[0].location",
                "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
                "source_type": "service_model",
                "default": "Atlanta"
              }
            ],
            "type": "table",
            "name": "location",
            "properties": {},
            "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.location",
            "description": "List of Locations",
            "element": "{\"type\":\"service_model\",\"id\":{\"name\":\"/ncs:services/IAP-Artifact-l2vpn:l2vpn\"}}",
            "source_type": "service_model",
            "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
            "id": "f8b58ca1-bd0f-47a0-b2b2-e0b3c064bc45",
            "yangkey": "location"
          },
          {
            "children": [
              {
                "properties": {
                  "type": "enumeration",
                  "prefix": "",
                  "enums": [
                    {
                      "name": "Atlanta",
                      "value": "Atlanta"
                    },
                    {
                      "name": "Dallas",
                      "value": "Dallas"
                    },
                    {
                      "name": "Detroit",
                      "value": "Detroit"
                    },
                    {
                      "name": "Las Vegas",
                      "value": "Las Vegas"
                    },
                    {
                      "name": "New York",
                      "value": "New York"
                    },
                    {
                      "name": "Seattle",
                      "value": "Seattle"
                    },
                    {
                      "name": "Tampa",
                      "value": "Tampa"
                    }
                  ]
                },
                "type": "field",
                "name": "location",
                "description": "Location of Service",
                "id": "c6acf852-219e-4fdf-9810-8f0303c9c69a",
                "isKey": true,
                "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.device[0].location",
                "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
                "source_type": "service_model",
                "default": "Atlanta"
              },
              {
                "properties": {
                  "type": "leafref",
                  "prefix": "",
                  "path": "/ncs:devices/ncs:device/ncs:name",
                  "enforce": true
                },
                "type": "field",
                "name": "device",
                "description": "Device Name",
                "id": "d3d1a74e-8fc6-45c0-8b35-0a1c1283494c",
                "isKey": true,
                "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.device[0].device",
                "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
                "source_type": "service_model"
              },
              {
                "properties": {
                  "type": "string",
                  "prefix": ""
                },
                "type": "field",
                "name": "description",
                "description": "Description of Service",
                "id": "5dd0d0bf-83e4-49fd-b761-d36900f2e2c1",
                "yangkey": "",
                "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.device[0].description",
                "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
                "source_type": "service_model",
                "default": "testingDescription"
              },
              {
                "properties": {
                  "type": "string",
                  "prefix": ""
                },
                "type": "field",
                "name": "interface",
                "description": "Bundle Ether Interface ID",
                "id": "c96054fa-4f5c-4533-950b-8a5a13ddc772",
                "yangkey": "",
                "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.device[0].interface",
                "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
                "source_type": "service_model",
                "default": "1"
              },
              {
                "properties": {
                  "type": "string",
                  "prefix": ""
                },
                "type": "field",
                "name": "svlan",
                "description": "Subscriber VLAN",
                "id": "658a02c0-a429-4350-8911-455965afa8a2",
                "yangkey": "",
                "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.device[0].svlan",
                "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
                "source_type": "service_model",
                "default": "223"
              },
              {
                "properties": {
                  "type": "inet:ipv4-address",
                  "prefix": ""
                },
                "type": "field",
                "name": "neighbor",
                "description": "Neighbor IP",
                "default": "2.2.2.1",
                "id": "81a149c9-45c6-456b-abf0-e48e37e5e7e1",
                "yangkey": "",
                "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.device[0].neighbor",
                "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
                "source_type": "service_model"
              },
              {
                "properties": {
                  "type": "uint16",
                  "min": "0",
                  "max": "65535",
                  "prefix": ""
                },
                "type": "field",
                "name": "mtu",
                "description": "MTU",
                "default": "2000",
                "id": "344a0c5c-8028-4bd0-a411-4cf1a80a8065",
                "yangkey": "",
                "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.device[0].mtu",
                "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
                "source_type": "service_model"
              }
            ],
            "type": "table",
            "name": "device",
            "properties": {},
            "description": "Device Information",
            "key": "/ncs:services/IAP-Artifact-l2vpn:l2vpn.device",
            "element": "{\"type\":\"service_model\",\"id\":{\"name\":\"/ncs:services/IAP-Artifact-l2vpn:l2vpn\"}}",
            "source_type": "service_model",
            "source": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
            "id": "971c809c-6e61-4a7c-8440-7d92146959ed",
            "yangkey": "location device"
          }
        ],
        "elements": [
          {
            "type": "service_model",
            "id": {
              "name": "/ncs:services/IAP-Artifact-l2vpn:l2vpn"
            }
          }
        ],
        "created": "2019-01-18T13:45:03.378Z",
        "createdBy": {
          "0": "5",
          "1": "c",
          "2": "9",
          "3": "c",
          "4": "3",
          "5": "b",
          "6": "8",
          "7": "4",
          "8": "a",
          "9": "9",
          "10": "2",
          "11": "c",
          "12": "f",
          "13": "7",
          "14": "2",
          "15": "2",
          "16": "9",
          "17": "4",
          "18": "4",
          "19": "8",
          "20": "7",
          "21": "8",
          "22": "c",
          "23": "e",
          "inactive": true
        },
        "groups": [],
        "lastUpdated": "2019-12-03T17:48:11.469Z",
        "lastUpdatedBy": {
          "provenance": "Local AAA",
          "username": "admin@pronghorn",
          "firstname": "admin",
          "inactive": false,
          "email": ""
        },
        "tags": []
      }
    },
    {
      "type": "service-catalog",
      "data": {
        "_id": "2bd50bec-2927-4ea5-b245-aec1872b75ea",
        "service_id": "/ncs:services/IAP-Artifact-l2vpn:l2vpn",
        "name": "IAP Artifacts L2VPN-Create-Service",
        "description": "Provision an L2VPN service",
        "groups": [
          "5c62ef16f736e638e92aa6ef"
        ],
        "jobs_groups": [
          "5c62ef16f736e638e92aa6ef"
        ],
        "form_id": "IAP Artifacts L2VPN Create Form",
        "workflow": "IAP Artifacts L2VPN Multisite Create Workflow",
        "createdBy": "admin@pronghorn",
        "created": "2019-01-18T13:59:11.551Z",
        "instance_data": {},
        "variable_name": "instanceData",
        "lastUpdatedBy": "admin@pronghorn",
        "lastUpdated": "2019-01-18T13:59:23.754Z"
      }
    },
    {
      "type": "service-catalog",
      "data": {
        "_id": "fb004b95-a842-47dd-9a75-7c37425b119b",
        "service_id": "/IAP-Artifact-l3vpn:l3vpn",
        "name": "IAP Artifacts L3VPN Create Service",
        "description": "Provision an L3VPN service",
        "groups": [
          "5c62ef16f736e638e92aa6ef"
        ],
        "jobs_groups": [
          "5c62ef16f736e638e92aa6ef"
        ],
        "form_id": "IAP Artifacts L3VPN Create Form",
        "workflow": "IAP Artifacts L3VPN Multisite Create Workflow",
        "createdBy": "admin@pronghorn",
        "created": "2019-01-15T13:02:15.160Z",
        "instance_data": {},
        "variable_name": "instanceData",
        "lastUpdatedBy": "admin@pronghorn",
        "lastUpdated": "2019-06-04T23:35:21.044Z"
      }
    }
  ],
  "readme": "# L2-L3-VPN\n\n## Table of Contents\n\n- [Intro](#intro)\n- [Supported device types](#supported-device-types)\n- [Test environment](#test-environment)\n- [Installation](#installation)\n  - [L2VPN Service Model](#l2vpn-service-model)\n  - [L3VPN Service Model](#l3vpn-service-model)\n  - [NSO Netsims](#nso-netsims)\n- [Provisioning L2VPN service via Service Catalog](#provisioning-l2vpn-service-via-service-catalog)\n- [Provisioning L3VPN service via Service Catalog](#provisioning-l3vpn-service-via-service-catalog)\n- [Running workflows via Postman](#running-workflows-via-postman)\n- [Uninstall](#uninstall)\n- [FAQ](#faq)\n\n## Intro\n\nThis artifact will demo Itential platform capabilities for handling and managing L2VPN (Layer 2 Virtual Private Network) and L3VPN (Layer 3 Virtual Private Network) services.\n\n<!-- ![Create L3 Service](https://gitlab.com/itentialopensource/pre-built-automations/l2-l3-vpn/raw/master/img/L3Workflow.png) -->\n<table><tr><td>\n\t<img src=\"https://gitlab.com/itentialopensource/pre-built-automations/l2-l3-vpn/raw/master/img/L3Workflow.png\" alt=\"Create L3 Service\" width=\"800px\">\n</td></tr></table>\n\nThe components used in this artifact are:\n\n* L2VPN Service Model: An NSO package that contain multiple files that model an L2VPN service. This is a demo service model that represent the minimum L2VPN service configurations. The service package runs on the Cisco NSO platform and will be managed from the user interface by Itential Platform.\n* L3VPN Service Model: An NSO package that contain multiple files that model an L3VPN service. This is a demo service model that represent the minimum L3VPN service configurations. The service package runs on the Cisco NSO platform and will be managed from the user interface by Itential Platform.\n* Workflows: Workflows are important components in the Itential platform that enable engineers to design complex network services with no to low code environment. The files included in this artifact represent the logic and flow required to provision L2VPN and L3VPN services.\n* Command Templates: Command templates enable engineers to run commands directly on devices. These commands can represent pre-checks that run before provisioning a service, and post-checks to run after service configuration. The commands included in this artifact are generic commands that show device configurations before a service is configured, and the difference between configurations after a service is configured.\n* Forms: Form Builder is an application in the Itential Platform. You can create custom forms to take input from users and pass it along to a workflow. The forms can be created manually or automatically by parsing YANG files from the Service Model package. The ability to validate inputs, set certain formats, or behave in certain conditions is provided. The forms included in this artifact are forms that require minimum user input to configure a service.\n* Service Catalog: An Itential Platform application that integrates Forms and Workflows together. The Service Catalog items included in this artifact map the service creation forms to the workflows that provision and configure the service.\n\n## Supported device types\n\n* Cisco IOS\n* Cisco IOS-XR\n\n## Test environment\n\nThis artifact has been tested on:\n\n* Itential Platform: 2019.1\n* NSO Ver: 4.5.3\n* NEDs Ver:\n  * cisco-ios: 6.0.9\n  * cisco-xr: 7.1\n  * itential-tools: 1.14.2\n* Mongo: v3.4.17\n* Node JS: v8.11.2\n* Redis: 4.0.1\n* Python: 2.7.15\n* Java: 1.8.0\n\n## Installation\n\nInstall this artifact using App Artifacts. Additionally, there are a few NSO packages to install manually.\n\n### L2VPN Service Model\n\n* Copy the service model folder to the NSO packages folder Ex: `cp -Rv <!--PWD-->/l2-l3-vpn/package/assets/service-models/IAP\\ Artifact-l2vpn /var/opt/ncs/packages/`\n* Navigate to the src folder inside the copied service model directory: `cd IAP\\ Artifact-l2vpn/src`\n* Compile the service mode. Run `make clean all`\n* Log into NSO cli: `ncs_cli -u admin`\n* Load the packages: `request packages reload`\n* Confirm the operation status of the package is up: `show packages package oper-status`\n* Ex. output:\n```\nadmin@ncs> show packages package oper-status \n                                                                                       PACKAGE                \n                        PROGRAM                                                        META     FILE          \n                        CODE     JAVA           BAD NCS  PACKAGE  PACKAGE  CIRCULAR    DATA     LOAD   ERROR  \nNAME                UP  ERROR    UNINITIALIZED  VERSION  NAME     VERSION  DEPENDENCY  ERROR    ERROR  INFO   \n--------------------------------------------------------------------------------------------------------------\nIAP-Artifact-l2vpn  X   -        -              -        -        -        -           -        -      -      \nItential Tools      X   -        -              -        -        -        -           -        -      -      \ncisco-ios           X   -        -              -        -        -        -           -        -      -      \ncisco-iosxr         X   -        -              -        -        -        -           -        -      -      \n\n[ok][2019-06-04 14:12:05]\nadmin@ncs> \n\n```\n\n### L3VPN Service Model\n\n* Copy the service model folder `IAP Artifact-l3vpn` to NSO packages folder normally located at `/var/opt/ncs/packages`\n* Navigate to the src folder inside the service model directory: `cd IAP Artifact-l3vpn/src`\n* Compile the service mode. Run: `make clean all`\n* Login to NSO cli: `ncs_cli -u admin`\n* Load the packages: `request packages reload`\n* The package reload summary may indicate a missing python dependency Ex. `admin@ncs> *** ALARM package-load-failure: [ImportError: No module named netaddr]`. To resolve this issue, `pip install netaddr`, and perform a package reload once again\n* Confirm the operation status of the package is up: `show packages package oper-status`\n* Ex. output:\n```\nadmin@ncs> show packages package oper-status \n                                                                                       PACKAGE                \n                        PROGRAM                                                        META     FILE          \n                        CODE     JAVA           BAD NCS  PACKAGE  PACKAGE  CIRCULAR    DATA     LOAD   ERROR  \nNAME                UP  ERROR    UNINITIALIZED  VERSION  NAME     VERSION  DEPENDENCY  ERROR    ERROR  INFO   \n--------------------------------------------------------------------------------------------------------------\nIAP-Artifact-l2vpn  X   -        -              -        -        -        -           -        -      -      \nIAP-Artifact-l3vpn  X   -        -              -        -        -        -           -        -      -      \nItential Tools      X   -        -              -        -        -        -           -        -      -      \ncisco-ios           X   -        -              -        -        -        -           -        -      -      \ncisco-iosxr         X   -        -              -        -        -        -           -        -      -      \n\n[ok][2019-06-04 14:12:05]\nadmin@ncs> \n```\n\n### NSO Netsims\n\nThis artifact requires Cisco IOS and IOSXR devices to run. `IOS and IOSXR will be used with the L3VPN` service. `IOSXR will be used with the L2VPN service`. This step will guide you through building the netsim devices used in running this artifact. We suggest running this artifact for the first time on blank netsim devices, but using real lab devices is also possible.\n\n* Navigate to your nso run directory: normally `cd /var/opt/ncs/`\n* Create a netsims network and add the number of devices required with the default name: `ncs-netsim create-network packages/cisco-ios 2 ios`. This will create a network with two virtual ios devices named ios0 and ios1.\n* Add additional devices to the network: `ncs-netsim add-to-network packages/cisco-iosxr 2 iosxr`. This will add two virtual iosxr devices to the netsim network.\n* Start the netsim devices: `ncs-netsim start`\n* Export the netsim devices settings to load in NSO: `ncs-netsim ncs-xml-init> load.xml`\n* Login to nso cli: `ncs_cli -u admin`\n* Switch to configurations mode: `config`\n* Load the XML settings file to the devices: `load merge load.xml`\n* Commit with the dry run option to validate devices information and authgroups: `commit dry-run outformat native`\n* If information and authgroups are correct, commit: `commit`\n* Fetch the devices' ssh keys: `request devices fetch-ssh-host-keys`\n* Connect to the devices: `request devices connect`\n* Sync from the devices: `request devices sync-from`\n\n## Provisioning L2VPN service via Service Catalog\n\n* Login to the Itential Automation Platform\n* Go to **Service Catalog** to provision a service. Click IAP Artifacts L3VPN Create Service.\n  <!-- ![Service Catalog](https://gitlab.com/itentialopensource/pre-built-automations/l2-l3-vpn/raw/master/img/serviceCatalog.png) -->\n  <table><tr><td>\n    <img src=\"https://gitlab.com/itentialopensource/pre-built-automations/l2-l3-vpn/raw/master/img/serviceCatalog.png\" alt=\"Service Catalog\" width=\"800px\">\n  </td></tr></table>\n* The L2VPN Service Model form is pre-populated with default values. It only requires the name of the device (iosxr). Change the other default values, as needed. \n  *  **To fill the PE information, click the site row. This opens another window. At the top of the form there is a breadcrumb trail that allows you to return to the previous screen in the form**.\n  <!-- ![Create L2 Service](https://gitlab.com/itentialopensource/pre-built-automations/l2-l3-vpn/raw/master/img/createL2.png) -->\n  <table><tr><td>\n    <img src=\"https://gitlab.com/itentialopensource/pre-built-automations/l2-l3-vpn/raw/master/img/createL2.png\" alt=\"Create L2 Service\" width=\"800px\">\n  </td></tr></table>\n* Go to Active Jobs to monitor and complete the workflow.\n* Please note: there is a manual step at the end of the workflow that offers the option to rollback when the automation completes.\n\n## Provisioning L3VPN service via Service Catalog\n\n* Login to the Itential Automation Platform\n* Go to **Service Catalog** to provision a service. L3VPN-Create-Service.\n* The L3VPN Service Model form is pre-populated with default values. It only requires the name of the CE device (ios) and PE device (iosxr). Change the other default values, as needed.\n  * **To fill the PE information click the site row. This opens another window. At the top of the form there is a breadcrumb trail that allow you to return to the previous screen in the form**.\n  <!-- ![Create L3 Service](https://gitlab.com/itentialopensource/pre-built-automations/l2-l3-vpn/raw/master/img/createL3-1.png) -->\n  <table><tr><td>\n    <img src=\"https://gitlab.com/itentialopensource/pre-built-automations/l2-l3-vpn/raw/master/img/createL3-1.png\" alt=\"Create L3 Service\" width=\"800px\">\n  </td></tr></table>\n  <!-- ![Create L3 Service](https://gitlab.com/itentialopensource/pre-built-automations/l2-l3-vpn/raw/master/img/createL3-2.png) -->\n  <table><tr><td>\n    <img src=\"https://gitlab.com/itentialopensource/pre-built-automations/l2-l3-vpn/raw/master/img/createL3-2.png\" alt=\"Create L3 Service\" width=\"800px\">\n  </td></tr></table>\n* Go to Active Jobs to monitor and complete the workflow.\n* Please note: there is a manual step at the end of the workflow that offers the option to rollback when the automation completes.\n\n## Running workflows directly\n\n* Login to the Itential Automation Platform\n* Navigate to Workflow-Builder, and click the start workflow button next to the L2 or L3 workflow.\n* once requested, fill the job variables with values. \n* L2VPN Ex. \n```\n{\n\t\"instanceData\": \n    {\n      \"/ncs:services/IAP-Artifact-l2vpn:l2vpn\": [{\n        \"id\": 12321,\n        \"bandwidth\": \"10\",\n        \"pwid\": \"4000\",\n        \"qos_policy\": \"Q-5rt-95sd\",\n        \"location\": [{\n          \"location\": \"Atlanta\"\n        }, {\n          \"location\": \"Dallas\"\n        }],\n        \"device\": [{\n          \"location\": \"Atlanta\",\n          \"device\": \"iosxr0\",\n          \"description\": \"testingDescriptionSite1\",\n          \"interface\": \"11\",\n          \"svlan\": \"232\",\n          \"neighbor\": \"2.2.2.2\",\n          \"mtu\": \"2000\"\n        }, {\n          \"location\": \"Dallas\",\n          \"device\": \"iosxr1\",\n          \"description\": \"testingDescriptionSite2\",\n          \"interface\": \"33\",\n          \"svlan\": \"45\",\n          \"neighbor\": \"2.2.2.1\",\n          \"mtu\": \"2000\"\n        }]\n      }]\n    }\n}\n``` \n* L3VPN Ex.\n```\n{\n\t\"instanceData\": \n    {\n      \"/IAP-Artifact-l3vpn:l3vpn\": [{\n        \"vpn-id\": \"123456\",\n        \"vpn-name\": \"testingName\",\n        \"description\": \"testingDescription\",\n        \"site\": [{\n          \"site-id\": \"1\",\n          \"ce\": \"ios0\",\n          \"site-description\": \"testingSiteDescription\",\n          \"lan-link\": [{\n            \"lan-interface-name\": \"0/1\",\n            \"lan-ip\": \"192.0.2.0/21\",\n            \"lan-description\": \"testingLanDescription\"\n          }],\n          \"wan-link\": [{\n            \"pe\": \"iosxr0\",\n            \"pe-interface-name\": \"0/0/0/1\",\n            \"vlan\": \"123\",\n            \"pe-as-num\": \"321\",\n            \"pe-router-ip\": \"192.0.2.0/21\",\n            \"pe-ip\": \"192.0.2.0/21\",\n            \"ce-wan-interface-name\": \"0/0\",\n            \"ce-wan-ip\": \"192.0.2.0/21\",\n            \"wan-description\": \"testingWanDescription\"\n          }]\n        }]\n      }]\n    }\n}\n``` \n* Go to Active Jobs to confirm the data, monitor the job, check the pre-checks, dry run, and post-checks.\n\n## Running workflows via Postman\n\n* Similarly, the service can also be initiated using a REST call. To test, run a post request using Postman or any other http request application.\n* L2VPN Ex.\n```\nPOST: workflow_engine/startJob/:workflow\n\nParameters:\nworkflow\t string\t   Workflow name (URL Parameter)\ndescription\t string\t   Description for the job (Body Parameter)\nvariables\t object\t   Job's variables (Body Parameter)\n\nSample Request:\ncurl -X POST \\\n  --url 'https://{{host}}:{{port}}/workflow_engine/startJob/IAP Artifacts L2VPN Multisite Create Workflow?token={{token}}' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\n  \"description\": \"testingL2VPN\",\n  \"variables\": {\n    \"instance\": { \n      \"/ncs:services/IAP-Artifact-l2vpn:l2vpn\": [{\n          \"id\": 12321,\n          \"bandwidth\": \"10\",\n          \"pwid\": \"4000\",\n          \"qos_policy\": \"Q-5rt-95sd\",\n          \"location\": [{\n            \"location\": \"Atlanta\"\n          }, {\n            \"location\": \"Dallas\"\n          }],\n          \"device\": [{\n            \"location\": \"Atlanta\",\n            \"device\": \"iosxr0\",\n            \"description\": \"testingDescriptionSite1\",\n            \"interface\": \"11\",\n            \"svlan\": \"232\",\n            \"neighbor\": \"2.2.2.2\",\n            \"mtu\": \"2000\"\n          }, {\n            \"location\": \"Dallas\",\n            \"device\": \"iosxr1\",\n            \"description\": \"testingDescriptionSite2\",\n            \"interface\": \"33\",\n            \"svlan\": \"45\",\n            \"neighbor\": \"2.2.2.1\",\n            \"mtu\": \"2000\"\n          }]\n        }]\n      }\n    }\n  }`\n```\n* L3VPN Ex.\n```\nPOST: workflow_engine/startJob/:workflow\n\nParameters:\nworkflow\t string\t   Workflow name (URL Parameter)\ndescription\t string\t   Description for the job (Body Parameter)\nvariables\t object\t   Job's variables (Body Parameter)\n\nSample Request:\ncurl -X POST \\\n  --url 'https://{{host}}:{{port}}/workflow_engine/startJob/IAP Artifacts L3VPN Multisite Create Workflow?token={{token}}' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\n  \"description\": \"testingL3VPN\",\n  \"variables\": {\n    \"instance\": {\n      \"/IAP-Artifact-l3vpn:l3vpn\": [{\n        \"vpn-id\": \"123456\",\n        \"vpn-name\": \"testingName\",\n        \"description\": \"testingDescription\",\n        \"site\": [{\n          \"site-id\": \"1\",\n          \"ce\": \"ios0\",\n          \"site-description\": \"testingSiteDescription\",\n          \"lan-link\": [{\n            \"lan-interface-name\": \"0/1\",\n            \"lan-ip\": \"192.0.2.0/21\",\n            \"lan-description\": \"testingLanDescription\"\n          }],\n          \"wan-link\": [{\n            \"pe\": \"iosxr0\",\n            \"pe-interface-name\": \"0/0/0/1\",\n            \"vlan\": \"123\",\n            \"pe-as-num\": \"321\",\n            \"pe-router-ip\": \"192.0.2.0/21\",\n            \"pe-ip\": \"192.0.2.0/21\",\n            \"ce-wan-interface-name\": \"0/0\",\n            \"ce-wan-ip\": \"192.0.2.0/21\",\n            \"wan-description\": \"testingWanDescription\"\n          }]\n        }]\n      }]\n    }\n  }\n  }`\n```\n\n## Uninstall\n\nTo remove the artifact:\n* Uninstall using App Artifacts\n* Remove the service models form: `/var/opt/ncs/packages`\n* Login to NSO cli: `ncs_cli -u amdin`\n* Reload the packages: `request packages reload`\n* Confirm the packages have been removed: `show packages package oper-status`\n\n## FAQ\n\n* In certain settings, NSO may require an extra Python library called `netaddr` in order to load the attached service models. This library can be installed via the `pip` command Ex. `pip install netaddr`\n* In certain scenarios, Service Catalog services or manual workflow tasks are not visible to the current user; To fix this issue please follow the steps:\n  * If the current user installed the artifact: try log out and re-login to the platform.\n  * Make sure that the current user or its group is associated with the **Itential Artifact** group via the SETTINGS > AUTHORIZATION menu. \n  * If current user doesn't have access to the SETTING menu, please contact your platform-admin \n"
}