{
  "metadata": {
    "name": "@itentialopensource/arista-eos-upgrade-iag",
    "version": "0.0.15-2023.1.2",
    "description": "[Deprecated] This Pre-built automation performs a standard software upgrade or downgrade on Arista EOS Switch.",
    "license": "Apache-2.0",
    "repository": {
      "type": "gitlab",
      "hostname": "gitlab.com",
      "path": "itentialopensource/pre-built-automations"
    },
    "keywords": [
      "Itential",
      "IAP",
      "artifacts",
      "Arista",
      "EOS",
      "Switch",
      "Upgrade",
      "Pre-built"
    ],
    "author": "Itential Artifacts",
    "IAPDependencies": {
      "@itential/app-automation_catalog": "",
      "@itential/app-json_forms": "",
      "@itential/app-workflow_engine": "",
      "@itential/app-template_builder": "",
      "@itential/adapter-automation_gateway": "",
      "@itential/app-mop": ""
    },
    "gitlabId": 32742255
  },
  "manifest": {
    "bundleName": "Arista EOS Upgrade IAG",
    "fingerprint": "61ddc92c31ad2f5e4fb0972f",
    "createdEpoch": "1641924908103",
    "artifacts": [
      {
        "id": "Arista EOS Upgrade - IAG",
        "name": "Arista EOS Upgrade - IAG",
        "type": "automation",
        "location": "/bundles/automations/Arista EOS Upgrade - IAG.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "Arista EOS Upgrade - IAG",
        "name": "Arista EOS Upgrade - IAG",
        "type": "workflow",
        "location": "/bundles/workflows/Arista EOS Upgrade - IAG.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "Command Template Runner",
        "name": "Command Template Runner",
        "type": "workflow",
        "location": "/bundles/workflows/Command Template Runner.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "Device-Connection-Health-Check",
        "name": "Device-Connection-Health-Check",
        "type": "workflow",
        "location": "/bundles/workflows/Device-Connection-Health-Check.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "Arista EOS Upgrade",
        "name": "Arista EOS Upgrade",
        "type": "json-forms",
        "location": "/bundles/json_forms/Arista EOS Upgrade.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "arista_eos_show_boot-config",
        "name": "arista_eos_show_boot-config",
        "type": "template",
        "location": "/bundles/templates/arista_eos_show_boot-config.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "Arista EOS Upgrade",
        "name": "Arista EOS Upgrade",
        "type": "mop-template",
        "location": "/bundles/mop_templates/Arista EOS Upgrade.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "Arista EOS Upgrade Preparation",
        "name": "Arista EOS Upgrade Preparation",
        "type": "mop-template",
        "location": "/bundles/mop_templates/Arista EOS Upgrade Preparation.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "Arista EOS Upgrade Pre-Post Checks",
        "name": "Arista EOS Upgrade Pre-Post Checks",
        "type": "mop-template",
        "location": "/bundles/mop_templates/Arista EOS Upgrade Pre-Post Checks.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "Arista EOS Upgrade Write",
        "name": "Arista EOS Upgrade Write",
        "type": "mop-template",
        "location": "/bundles/mop_templates/Arista EOS Upgrade Write.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "Arista EOS Upgrade Verify",
        "name": "Arista EOS Upgrade Verify",
        "type": "mop-template",
        "location": "/bundles/mop_templates/Arista EOS Upgrade Verify.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "Arista EOS Upgrade",
        "name": "Arista EOS Upgrade",
        "type": "mop-analytic-template",
        "location": "/bundles/mop_analytic_templates/Arista EOS Upgrade.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "616db0c8b5b2e525505be400",
        "name": "Arista_EOS_Upgrade_JST",
        "type": "transformation",
        "location": "/bundles/transformations/Arista_EOS_Upgrade_JST.json",
        "properties": {
          "entryPoint": false
        }
      },
      {
        "id": "6037fc47058d4a65713f3868",
        "name": "incrementNumber",
        "type": "transformation",
        "location": "/bundles/transformations/incrementNumber.json",
        "properties": {
          "entryPoint": false
        }
      }
    ]
  },
  "bundles": [
    {
      "type": "automation",
      "data": {
        "_id": "646f9bcab6f65602005adf30",
        "name": "Arista EOS Upgrade - IAG",
        "description": "This Pre-built automation performs a standard software upgrade or downgrade on Arista EOS switch for IAG.",
        "componentName": "Arista EOS Upgrade - IAG",
        "componentType": "workflows",
        "gbac": {
          "write": [],
          "read": []
        },
        "created": "2023-05-25T17:32:58.284Z",
        "createdBy": "admin@pronghorn",
        "lastUpdated": "2023-05-25T17:32:58.284Z",
        "lastUpdatedBy": "admin@pronghorn",
        "triggers": [
          {
            "_id": "646f9bcab6f65602005adf31",
            "created": "2023-05-25T17:32:58.374Z",
            "createdBy": "admin@pronghorn",
            "lastUpdated": "2023-05-25T17:32:58.374Z",
            "lastUpdatedBy": "admin@pronghorn",
            "name": "Start Arista EOS Upgrade - IAG with Form",
            "type": "manual",
            "enabled": true,
            "actionType": "automations",
            "actionId": "646f9bcab6f65602005adf30",
            "formId": null,
            "formData": {
              "zeroTouch": true,
              "healthCheckVariables": {
                "numberOfRetries": null
              }
            },
            "formSchemaHash": null,
            "migrationVersion": 1
          }
        ]
      }
    },
    {
      "type": "workflow",
      "data": {
        "name": "Arista EOS Upgrade - IAG",
        "type": "automation",
        "tasks": {
          "358": {
            "name": "makeData",
            "canvasName": "makeData",
            "summary": "Make Boot Config Statement - Old Image",
            "description": "Make Boot Config Statement - Old Image",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "automatic",
            "displayName": "Tools",
            "variables": {
              "incoming": {
                "input": "[{\"parents\":[],\"new\":\"boot system <!oldImageFile!>\"}]",
                "outputType": "json",
                "variables": "$var.2253.value"
              },
              "outgoing": {
                "output": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>makeData</span>"
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 0.8022318660880348,
            "y": 0.8176605504587156,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "1436": {
            "name": "evaluation",
            "canvasName": "evaluation",
            "summary": "Eval Current Boot File",
            "description": "Eval Current Boot File",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "all_true_flag": true,
                "evaluation_groups": [
                  {
                    "all_true_flag": true,
                    "evaluations": [
                      {
                        "query": "templateResults.commands_results[1].response",
                        "operand_1": {
                          "variable": "job_details",
                          "task": "49f4"
                        },
                        "operator": "!contains",
                        "operand_2": {
                          "variable": "imageFile",
                          "task": "f19e"
                        }
                      }
                    ]
                  },
                  {
                    "all_true_flag": true,
                    "evaluations": [
                      {
                        "query": "templateResults.commands_results[1].response",
                        "operand_1": {
                          "variable": "job_details",
                          "task": "49f4"
                        },
                        "operator": "contains",
                        "operand_2": {
                          "variable": "boot system",
                          "task": "static"
                        }
                      }
                    ]
                  }
                ]
              },
              "outgoing": {
                "return_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>eval</span>uation"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Eval</span>uation Task"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": 0.12151270923744575,
            "y": 0.411697247706422
          },
          "2253": {
            "name": "newVariable",
            "canvasName": "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",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "name": "variables",
                "value": "$var.f38f.merged_object"
              },
              "outgoing": {
                "value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>new</span><span class='highlight-string'>Var</span>iable"
              },
              {
                "key": "description",
                "highlightString": "Create a <span class='highlight-string'>new</span> <span class='highlight-string'>Job</span> <span class='highlight-string'>var</span>iable by Job ID and assign it a value."
              },
              {
                "key": "summary",
                "highlightString": "Create a <span class='highlight-string'>Job</span> <span class='highlight-string'>Var</span>iable"
              }
            ],
            "groups": [],
            "x": -0.08196721311475409,
            "y": 0.4105504587155963
          },
          "3233": {
            "name": "applyTemplates",
            "canvasName": "applyTemplates",
            "summary": "Parse Old Image File",
            "description": "Parse Old Image File",
            "location": "Application",
            "locationType": null,
            "app": "TemplateBuilder",
            "type": "automatic",
            "displayName": "TemplateBuilder",
            "variables": {
              "incoming": {
                "text": "$var.91b6.return_data",
                "templates": [
                  "arista_eos_show_boot-config"
                ]
              },
              "outgoing": {
                "parsed": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [],
            "groups": [],
            "actor": "job",
            "x": -0.25445473984319317,
            "y": 0.4013761467889908,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "4007": {
            "name": "ViewData",
            "canvasName": "ViewData",
            "summary": "NSO - not compatible message",
            "description": "NSO - not compatible message",
            "location": "Application",
            "app": "WorkFlowEngine",
            "displayName": "Tools",
            "type": "manual",
            "variables": {
              "incoming": {
                "header": "Selected device is managed by NSO and not compatible with this Ansible workflow. ",
                "message": "Kindly <b>Select New Device</b> or <b>Ignore</b> this error.",
                "body": "",
                "variables": {},
                "btn_success": "Select New Device",
                "btn_failure": "Ignore"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/workflow_engine/task/ViewData",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>ViewData</span>"
              }
            ],
            "groups": [],
            "x": -0.4397719173200285,
            "y": 1.0275229357798166,
            "scheduled": false
          },
          "8738": {
            "name": "stub",
            "canvasName": "stub",
            "summary": "Exit Gracefully",
            "description": "Exit Gracefully",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "automatic",
            "displayName": "Tools",
            "variables": {
              "incoming": {
                "type": "error",
                "delay": "",
                "response": ""
              },
              "outgoing": {
                "response": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>stub</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Stub</span>"
              },
              {
                "key": "description",
                "highlightString": "Create a <span class='highlight-string'>stub</span> for an automated task"
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 0.2411655300681959,
            "y": 1.723623853211009,
            "scheduled": false
          },
          "workflow_start": {
            "name": "workflow_start",
            "groups": [],
            "x": -0.9957234497505346,
            "y": 0.36926605504587157
          },
          "workflow_end": {
            "name": "workflow_end",
            "groups": [],
            "x": 2.2070675759454432,
            "y": 0.393348623853211
          },
          "f19e": {
            "name": "transformation",
            "canvasName": "transformation",
            "summary": "Process Form Data",
            "description": "Process Form Data",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "tr_id": "616db0c8b5b2e525505be400",
                "variableMap": {
                  "formData": "$var.job.formData"
                },
                "options": {
                  "extractOutput": false,
                  "validateIncoming": false,
                  "revertToDefaultValue": true
                }
              },
              "outgoing": {
                "zeroTouchMode": null,
                "numberOfRetries": null,
                "pingDelay": null,
                "numberOfRetriesStability": null,
                "deviceName": null,
                "arrayedDevice": null,
                "imageFile": null,
                "md5": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "description",
                "highlightString": "Perform a JSON Transformation using the <span class='highlight-string'>JST</span> library."
              }
            ],
            "groups": [],
            "x": -0.8731290092658589,
            "y": 0.36811926605504586,
            "task_name": "Arista_EOS_Upgrade_JST_Query",
            "retrySettings": null
          },
          "c11d": {
            "name": "ShowJsonForm",
            "canvasName": "ShowJsonForm",
            "summary": "Show Input Form",
            "description": "Shows input form w/ most recent data.",
            "location": "Application",
            "app": "JsonForms",
            "displayName": "JsonForms",
            "type": "manual",
            "variables": {
              "incoming": {
                "form_id": "Arista EOS Upgrade",
                "instance_data": "$var.job.formData"
              },
              "outgoing": {
                "export": "$var.job.formData"
              },
              "error": "",
              "decorators": []
            },
            "view": "/json-forms/task/ShowJsonForm",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>Show</span>Json<span class='highlight-string'>Form</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Show</span> Json <span class='highlight-string'>Form</span>"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Show</span> Json <span class='highlight-string'>Form</span>"
              },
              {
                "key": "displayName",
                "highlightString": "Json<span class='highlight-string'>Form</span>s"
              }
            ],
            "groups": [],
            "x": -0.8745545260156807,
            "y": 1.0080275229357798,
            "scheduled": false
          },
          "f38f": {
            "name": "merge",
            "canvasName": "merge",
            "summary": "Merge data",
            "description": "Merge data",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "data_to_merge": [
                  {
                    "key": "job_id",
                    "value": {
                      "task": "job",
                      "variable": "_id"
                    }
                  },
                  {
                    "key": "adapter_id",
                    "value": {
                      "task": "2fab",
                      "variable": "return_data"
                    }
                  },
                  {
                    "key": "zeroTouchMode",
                    "value": {
                      "task": "f19e",
                      "variable": "zeroTouchMode"
                    }
                  },
                  {
                    "key": "numberOfRetries",
                    "value": {
                      "task": "f19e",
                      "variable": "numberOfRetries"
                    }
                  },
                  {
                    "key": "pingDelay",
                    "value": {
                      "task": "f19e",
                      "variable": "pingDelay"
                    }
                  },
                  {
                    "key": "numberOfRetriesStability",
                    "value": {
                      "task": "f19e",
                      "variable": "numberOfRetriesStability"
                    }
                  },
                  {
                    "key": "deviceName",
                    "value": {
                      "task": "f19e",
                      "variable": "deviceName"
                    }
                  },
                  {
                    "key": "arrayedDevice",
                    "value": {
                      "task": "f19e",
                      "variable": "arrayedDevice"
                    }
                  },
                  {
                    "key": "imageFile",
                    "value": {
                      "task": "f19e",
                      "variable": "imageFile"
                    }
                  },
                  {
                    "key": "md5",
                    "value": {
                      "task": "f19e",
                      "variable": "md5"
                    }
                  },
                  {
                    "key": "oldImageFile",
                    "value": {
                      "task": "job",
                      "variable": "oldImageFile",
                      "editable": true
                    }
                  }
                ]
              },
              "outgoing": {
                "merged_object": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>merge</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Merge</span> Data"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Merge</span> data into a single object"
              }
            ],
            "groups": [],
            "x": -0.1660727013542409,
            "y": 0.4013761467889908
          },
          "320e": {
            "name": "ViewData",
            "canvasName": "ViewData",
            "summary": "Device unreachable",
            "description": "Device unreachable",
            "location": "Application",
            "app": "WorkFlowEngine",
            "displayName": "Tools",
            "type": "manual",
            "variables": {
              "incoming": {
                "header": "Device is unreachable",
                "message": "",
                "body": "The selected device failed to return details, kindly verify connectivity to the device then press either <b>Try Again</b> to return to the user input form task, or <b>Abort</b> to end the workflow.",
                "variables": {},
                "btn_success": "Try Again",
                "btn_failure": "Abort"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/workflow_engine/task/ViewData",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>ViewDat</span>a"
              }
            ],
            "groups": [],
            "x": -0.7412687099073414,
            "y": 1.0091743119266054,
            "scheduled": false
          },
          "a63e": {
            "name": "getDevice",
            "canvasName": "getDevice",
            "summary": "Get Device Details",
            "description": "Get Device Details",
            "location": "Application",
            "locationType": null,
            "app": "ConfigurationManager",
            "type": "automatic",
            "displayName": "ConfigurationManager",
            "variables": {
              "incoming": {
                "name": "$var.f19e.deviceName"
              },
              "outgoing": {
                "device": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>getDevice</span>"
              }
            ],
            "groups": [],
            "actor": "job",
            "x": -0.736992159657876,
            "y": 0.3795871559633027,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "2fab": {
            "name": "query",
            "canvasName": "query",
            "summary": "adapterID",
            "description": "adapterID",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": "origin",
                "obj": "$var.a63e.device"
              },
              "outgoing": {
                "return_data": "$var.job.adapter_id"
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "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.7426942266571632,
            "y": 0.2603211009174312,
            "scheduled": false,
            "retrySettings": null
          },
          "266c": {
            "name": "objectHasOwnProperty",
            "canvasName": "objectHasOwnProperty",
            "summary": "Check for NSO",
            "description": "Check for NSO",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "automatic",
            "displayName": "Object",
            "variables": {
              "incoming": {
                "obj": "$var.a63e.device",
                "prop": "ned"
              },
              "outgoing": {
                "result": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "object<span class='highlight-string'>HasOwnProperty</span>"
              }
            ],
            "groups": [],
            "actor": "job",
            "x": -0.5937277263007841,
            "y": 0.38990825688073394,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "49f4": {
            "name": "childJob",
            "canvasName": "childJob",
            "summary": "Prepare switch",
            "description": "Prepare switch",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "task": "",
                "workflow": "Command Template Runner",
                "variables": {
                  "templateName": {
                    "variable": "",
                    "task": "static",
                    "value": "Arista EOS Upgrade Preparation"
                  },
                  "templateVariables": {
                    "variable": "",
                    "task": "2253",
                    "value": "value"
                  },
                  "devices": {
                    "variable": "",
                    "task": "f19e",
                    "value": "arrayedDevice"
                  },
                  "failureType": {
                    "variable": "",
                    "task": "static",
                    "value": "terminate"
                  },
                  "zeroTouch": {
                    "variable": "",
                    "task": "f19e",
                    "value": "zeroTouchMode"
                  }
                },
                "data_array": "",
                "transformation": "",
                "loopType": ""
              },
              "outgoing": {
                "job_details": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>child</span>Job"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Child</span> Job"
              },
              {
                "key": "description",
                "highlightString": "Runs a <span class='highlight-string'>child</span> job inside a workflow."
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 0.040627227369921595,
            "y": 0.40825688073394495,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "adf8": {
            "name": "ViewData",
            "canvasName": "ViewData",
            "summary": "Error message boot already set to selected version",
            "description": "Error message boot already set to selected version",
            "location": "Application",
            "app": "WorkFlowEngine",
            "displayName": "Tools",
            "type": "manual",
            "variables": {
              "incoming": {
                "header": "Selected image file is already configured in the device startup boot system",
                "message": "$var.5a3c.output",
                "body": "",
                "variables": {},
                "btn_success": "Launch Form",
                "btn_failure": "Abort"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/workflow_engine/task/ViewData",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>ViewData</span>"
              }
            ],
            "groups": [],
            "x": 0.11097334159950403,
            "y": 1.0194954128440368,
            "scheduled": false
          },
          "5a3c": {
            "name": "makeData",
            "canvasName": "makeData",
            "summary": "Error boot already configured to file",
            "description": "Error boot already configured to file",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "automatic",
            "displayName": "Tools",
            "variables": {
              "incoming": {
                "input": "Selected image file, <b><!imageFile!></b>, is already configured in the device startup boot system.<br>\n<br> Kindly choose to re-enter <b>Form</b> fields or <b>Abort</b> this workflow.",
                "outputType": "string",
                "variables": "$var.2253.value"
              },
              "outgoing": {
                "output": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>makeData</span>"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.11593304401735896,
            "y": 0.8371559633027523,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "a193": {
            "name": "evaluation",
            "canvasName": "evaluation",
            "summary": "Eval selected image file in device directory",
            "description": "Eval selected image file in device directory",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "all_true_flag": true,
                "evaluation_groups": [
                  {
                    "all_true_flag": true,
                    "evaluations": [
                      {
                        "query": "templateResults.commands_results[3].response",
                        "operand_1": {
                          "variable": "job_details",
                          "task": "49f4"
                        },
                        "operator": "contains",
                        "operand_2": {
                          "variable": "imageFile",
                          "task": "f19e"
                        }
                      }
                    ]
                  },
                  {
                    "all_true_flag": true,
                    "evaluations": [
                      {
                        "query": "templateResults.commands_results[3].response",
                        "operand_1": {
                          "variable": "job_details",
                          "task": "49f4"
                        },
                        "operator": "!contains",
                        "operand_2": {
                          "variable": "No such file or directory",
                          "task": "static"
                        }
                      }
                    ]
                  }
                ]
              },
              "outgoing": {
                "return_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>eval</span>uation"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Eval</span>uation Task"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": 0.23868567885926845,
            "y": 0.4059633027522936
          },
          "75cf": {
            "name": "makeData",
            "canvasName": "makeData",
            "summary": "Error file not present on device",
            "description": "Error file not present on device",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "automatic",
            "displayName": "Tools",
            "variables": {
              "incoming": {
                "input": "Selected image file <b><!imageFile!></b> is not in the device directory.<br>\n<br> Kindly choose to re-enter <b>Form</b> fields and select a different image file or <b>Abort</b> this workflow and retry after image file is downloaded to the device. The target image must be copied to the file system on the switch, typically onto the flash drive.",
                "outputType": "string",
                "variables": "$var.2253.value"
              },
              "outgoing": {
                "output": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>makeData</span>"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.2486050836949783,
            "y": 0.8371559633027523,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "b509": {
            "name": "ViewData",
            "canvasName": "ViewData",
            "summary": "Error message file missing",
            "description": "Error message file missing from device directory",
            "location": "Application",
            "app": "WorkFlowEngine",
            "displayName": "Tools",
            "type": "manual",
            "variables": {
              "incoming": {
                "header": "Selected image file missing from device directory",
                "message": "$var.75cf.output",
                "body": "",
                "variables": {},
                "btn_success": "Launch Form",
                "btn_failure": "Abort"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/workflow_engine/task/ViewData",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>ViewData</span>"
              }
            ],
            "groups": [],
            "x": 0.2486050836949783,
            "y": 1.0229357798165137,
            "scheduled": false
          },
          "905d": {
            "name": "childJob",
            "canvasName": "childJob",
            "summary": "Prechecks",
            "description": "Prechecks",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "task": "",
                "workflow": "Command Template Runner",
                "variables": {
                  "templateName": {
                    "variable": "",
                    "task": "static",
                    "value": "Arista EOS Upgrade Pre-Post Checks"
                  },
                  "templateVariables": {
                    "variable": "",
                    "task": "2253",
                    "value": "value"
                  },
                  "devices": {
                    "variable": "",
                    "task": "f19e",
                    "value": "arrayedDevice"
                  },
                  "failureType": {
                    "variable": "",
                    "task": "static",
                    "value": "terminate"
                  },
                  "zeroTouch": {
                    "variable": "",
                    "task": "f19e",
                    "value": "zeroTouchMode"
                  }
                },
                "data_array": "",
                "transformation": "",
                "loopType": ""
              },
              "outgoing": {
                "job_details": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>child</span>Job"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Child</span> Job"
              },
              {
                "key": "description",
                "highlightString": "Runs a <span class='highlight-string'>child</span> job inside a workflow."
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 0.3558586484810911,
            "y": 0.4151376146788991,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "e31e": {
            "name": "childJob",
            "canvasName": "childJob",
            "summary": "Verify Upgrade",
            "description": "Verify Upgrade",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "task": "",
                "workflow": "Command Template Runner",
                "variables": {
                  "templateName": {
                    "variable": "",
                    "task": "static",
                    "value": "Arista EOS Upgrade"
                  },
                  "templateVariables": {
                    "variable": "",
                    "task": "2253",
                    "value": "value"
                  },
                  "devices": {
                    "variable": "",
                    "task": "f19e",
                    "value": "arrayedDevice"
                  },
                  "failureType": {
                    "variable": "",
                    "task": "static",
                    "value": "terminate"
                  },
                  "zeroTouch": {
                    "variable": "",
                    "task": "f19e",
                    "value": "zeroTouchMode"
                  }
                },
                "data_array": "",
                "transformation": "",
                "loopType": ""
              },
              "outgoing": {
                "job_details": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>child</span>Job"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Child</span> Job"
              },
              {
                "key": "description",
                "highlightString": "Runs a <span class='highlight-string'>child</span> job inside a workflow."
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 0.9274643521388717,
            "y": 0.4288990825688073,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "d39c": {
            "name": "makeData",
            "canvasName": "makeData",
            "summary": "Make Boot Config Statement - New Image",
            "description": "Make Boot Config Statement - New Image",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "automatic",
            "displayName": "Tools",
            "variables": {
              "incoming": {
                "input": "[{\"parents\":[],\"new\":\"boot system flash:/<!imageFile!>\"}]",
                "outputType": "json",
                "variables": "$var.2253.value"
              },
              "outgoing": {
                "output": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>makeData</span>"
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 0.5189088654680719,
            "y": 0.4323394495412844,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "3ac": {
            "name": "setConfig",
            "canvasName": "setConfig",
            "summary": "Set boot configuration",
            "description": "Set boot configuration",
            "location": "Adapter",
            "locationType": "AutomationGateway",
            "app": "AutomationGateway",
            "type": "automatic",
            "displayName": "AutomationGateway",
            "variables": {
              "incoming": {
                "deviceName": "$var.f19e.deviceName",
                "changes": "$var.d39c.output",
                "adapter_id": "$var.job.adapter_id"
              },
              "outgoing": {
                "result": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>setConfig</span>"
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 0.6776193428394296,
            "y": 0.44036697247706424,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": false,
              "limit": 3,
              "delay": 10000
            }
          },
          "37b0": {
            "name": "ViewData",
            "canvasName": "ViewData",
            "summary": "Confirm or Backout",
            "description": "Confirm or Backout",
            "location": "Application",
            "app": "WorkFlowEngine",
            "displayName": "Tools",
            "type": "manual",
            "variables": {
              "incoming": {
                "header": "Results",
                "message": "The device boot configuration now points to the new image file selected. \n<code>scroll down for more text...</code>\nSelect <b>Continue</b> to save the new boot configuration and reload the device <b>OR</b> select <b>Backout</b> to rollback the changes and restore the initial configuration.\nYou may monitor device state during boot up process using a console.",
                "body": "$var.3ac.result",
                "variables": {},
                "btn_success": "Continue",
                "btn_failure": "Backout"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/workflow_engine/task/ViewData",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>ViewData</span>"
              }
            ],
            "groups": [],
            "x": 0.8003719776813392,
            "y": 0.4461009174311927,
            "scheduled": false
          },
          "a4f4": {
            "name": "childJob",
            "canvasName": "childJob",
            "summary": "Postchecks",
            "description": "Postchecks",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "task": "",
                "workflow": "Command Template Runner",
                "variables": {
                  "templateName": {
                    "variable": "",
                    "task": "static",
                    "value": "Arista EOS Upgrade Pre-Post Checks"
                  },
                  "templateVariables": {
                    "variable": "",
                    "task": "2253",
                    "value": "value"
                  },
                  "devices": {
                    "variable": "",
                    "task": "f19e",
                    "value": "arrayedDevice"
                  },
                  "failureType": {
                    "variable": "",
                    "task": "static",
                    "value": "terminate"
                  },
                  "zeroTouch": {
                    "variable": "",
                    "task": "f19e",
                    "value": "zeroTouchMode"
                  }
                },
                "data_array": "",
                "transformation": "",
                "loopType": ""
              },
              "outgoing": {
                "job_details": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>child</span>Job"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Child</span> Job"
              },
              {
                "key": "description",
                "highlightString": "Runs a <span class='highlight-string'>child</span> job inside a workflow."
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 1.6057036577805333,
            "y": 0.41743119266055045,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "efec": {
            "name": "childJob",
            "canvasName": "childJob",
            "summary": "Verify",
            "description": "Verify",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "task": "",
                "workflow": "Command Template Runner",
                "variables": {
                  "templateName": {
                    "variable": "",
                    "task": "static",
                    "value": "Arista EOS Upgrade Verify"
                  },
                  "templateVariables": {
                    "variable": "",
                    "task": "2253",
                    "value": "value"
                  },
                  "devices": {
                    "variable": "",
                    "task": "f19e",
                    "value": "arrayedDevice"
                  },
                  "failureType": {
                    "variable": "",
                    "task": "static",
                    "value": "terminate"
                  },
                  "zeroTouch": {
                    "variable": "",
                    "task": "f19e",
                    "value": "zeroTouchMode"
                  }
                },
                "data_array": "",
                "transformation": "",
                "loopType": ""
              },
              "outgoing": {
                "job_details": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>child</span>Job"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Child</span> Job"
              },
              {
                "key": "description",
                "highlightString": "Runs a <span class='highlight-string'>child</span> job inside a workflow."
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 1.4829510229386236,
            "y": 0.42545871559633025,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "e374": {
            "name": "childJob",
            "canvasName": "childJob",
            "summary": "Health-Check After Upgrade",
            "description": "Health-Check After Upgrade",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "task": "",
                "workflow": "Device-Connection-Health-Check",
                "variables": {
                  "numberOfRetries": {
                    "variable": "",
                    "task": "f19e",
                    "value": "numberOfRetries"
                  },
                  "numberOfRetriesStability": {
                    "variable": "",
                    "task": "f19e",
                    "value": "numberOfRetriesStability"
                  },
                  "pingDelay": {
                    "variable": "",
                    "task": "f19e",
                    "value": "pingDelay"
                  },
                  "device": {
                    "variable": "",
                    "task": "f19e",
                    "value": "deviceName"
                  }
                },
                "data_array": "",
                "transformation": "",
                "loopType": ""
              },
              "outgoing": {
                "job_details": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>child</span>Job"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Child</span> Job"
              },
              {
                "key": "description",
                "highlightString": "Runs a <span class='highlight-string'>child</span> job inside a workflow."
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 1.2845629262244265,
            "y": 0.41743119266055045,
            "retrySettings": null
          },
          "9cc1": {
            "name": "evaluation",
            "canvasName": "evaluation",
            "summary": "Eval health-check",
            "description": "Eval health-check",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "all_true_flag": false,
                "evaluation_groups": [
                  {
                    "all_true_flag": false,
                    "evaluations": [
                      {
                        "query": "outcome",
                        "operand_1": {
                          "variable": "job_details",
                          "task": "e374"
                        },
                        "operator": "==",
                        "operand_2": {
                          "variable": "success",
                          "task": "static"
                        }
                      }
                    ]
                  }
                ]
              },
              "outgoing": {
                "return_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>eval</span>uation"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Eval</span>uation Task"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": 1.3781773093614382,
            "y": 0.4288990825688073
          },
          "60d6": {
            "name": "ViewData",
            "canvasName": "ViewData",
            "summary": "Device unreachable after reload command",
            "description": "Device unreachable after reload command",
            "location": "Application",
            "app": "WorkFlowEngine",
            "displayName": "Tools",
            "type": "manual",
            "variables": {
              "incoming": {
                "header": "Device is unreachable",
                "message": "Device is unreachable after issuing reload command. \n<br> Kindly choose to <b>Try Health Check Again</b> or <b>Abort</b> this workflow.",
                "body": "",
                "variables": {},
                "btn_success": "Try again",
                "btn_failure": "Abort"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/workflow_engine/task/ViewData",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>ViewDat</span>a"
              }
            ],
            "groups": [],
            "x": 1.3777619387027797,
            "y": 0.9165644171779141,
            "scheduled": false
          },
          "fa81": {
            "name": "evaluation",
            "canvasName": "evaluation",
            "summary": "Eval Auto-Complete",
            "description": "Eval Auto-Complete",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "all_true_flag": true,
                "evaluation_groups": [
                  {
                    "all_true_flag": true,
                    "evaluations": [
                      {
                        "query": "",
                        "operand_1": {
                          "variable": "zeroTouchMode",
                          "task": "f19e"
                        },
                        "operator": "==",
                        "operand_2": {
                          "variable": false,
                          "task": "static"
                        }
                      }
                    ]
                  }
                ]
              },
              "outgoing": {
                "return_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>eval</span>uation"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Eval</span>uation Task"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": 0.6769993800371977,
            "y": 0.3360091743119266
          },
          "46ff": {
            "name": "runCommand",
            "canvasName": "runCommand",
            "summary": "Show current boot file",
            "description": "Show current boot file",
            "location": "Adapter",
            "locationType": "AutomationGateway",
            "app": "AutomationGateway",
            "type": "automatic",
            "displayName": "AutomationGateway",
            "variables": {
              "incoming": {
                "devices": "$var.f19e.arrayedDevice",
                "command": "show boot-config | include Software image:",
                "options": {},
                "adapter_id": "$var.2fab.return_data"
              },
              "outgoing": {
                "result": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "run<span class='highlight-string'>Command</span>"
              },
              {
                "key": "summary",
                "highlightString": "Run a <span class='highlight-string'>command</span> on a device"
              },
              {
                "key": "description",
                "highlightString": "This method will run the provided <span class='highlight-string'>command</span> on a device"
              }
            ],
            "groups": [],
            "actor": "job",
            "x": -0.3970064148253742,
            "y": 0.3944954128440367,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "91b6": {
            "name": "query",
            "canvasName": "query",
            "summary": "Current boot-config *.swi file",
            "description": "Current boot-config *.swi file",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": "result",
                "obj": "$var.46ff.result"
              },
              "outgoing": {
                "return_data": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "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.4005702066999287,
            "y": 0.2809633027522936,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "ec80": {
            "name": "query",
            "canvasName": "query",
            "summary": "Old Image File",
            "description": "Old Image File",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": "mapped.VERSION",
                "obj": "$var.3233.parsed"
              },
              "outgoing": {
                "return_data": "$var.job.oldImageFile"
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "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.26585887384176765,
            "y": 0.28211009174311924,
            "scheduled": false
          },
          "e330": {
            "name": "setConfig",
            "canvasName": "setConfig",
            "summary": "Backout",
            "description": "Backout",
            "location": "Adapter",
            "locationType": "AutomationGateway",
            "app": "AutomationGateway",
            "type": "automatic",
            "displayName": "AutomationGateway",
            "variables": {
              "incoming": {
                "deviceName": "$var.f19e.deviceName",
                "changes": "$var.358.output",
                "adapter_id": "$var.job.adapter_id"
              },
              "outgoing": {
                "result": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>setConfig</span>"
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 0.8022318660880348,
            "y": 1.0080275229357798,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "53fb": {
            "name": "evaluation",
            "canvasName": "evaluation",
            "summary": "Eval for NSO",
            "description": "Eval for NSO",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "all_true_flag": false,
                "evaluation_groups": [
                  {
                    "all_true_flag": true,
                    "evaluations": [
                      {
                        "query": "",
                        "operand_1": {
                          "variable": "result",
                          "task": "266c"
                        },
                        "operator": "==",
                        "operand_2": {
                          "variable": false,
                          "task": "static"
                        }
                      }
                    ]
                  }
                ]
              },
              "outgoing": {
                "return_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>eval</span>uation"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Eval</span>uation Task"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": -0.5081967213114754,
            "y": 0.38646788990825687
          },
          "46b0": {
            "name": "ViewData",
            "canvasName": "ViewData",
            "summary": "Communication error",
            "description": "Error showing current boot file",
            "location": "Application",
            "app": "WorkFlowEngine",
            "displayName": "Tools",
            "type": "manual",
            "variables": {
              "incoming": {
                "header": "Unable to show current boot-config *.swi file",
                "message": "<i>show boot-config | include Software image:</i>.",
                "body": "Error executing commands on  device<br>Kindly check connectivity, and press <b>Retry</b> when ready to try again, or <b>Skip</b> this task.",
                "variables": {},
                "btn_success": "Skip",
                "btn_failure": "Retry"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/workflow_engine/task/ViewData",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>ViewDat</span>a"
              }
            ],
            "groups": [],
            "x": -0.2101673899566026,
            "y": 1.0424311926605505,
            "scheduled": false
          },
          "fc82": {
            "name": "ViewData",
            "canvasName": "ViewData",
            "summary": "Device failed to run command template.",
            "description": "Device failed to run command template.",
            "location": "Application",
            "app": "WorkFlowEngine",
            "displayName": "Tools",
            "type": "manual",
            "variables": {
              "incoming": {
                "header": "Device failed to run command template.",
                "message": "Command template failed to run. Kindly read run-time log to determine source of error and press <b>Retry</b> or <b>Abort</b> this workflow.",
                "body": "",
                "variables": {},
                "btn_success": "Retry",
                "btn_failure": "Abort"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/workflow_engine/task/ViewData",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>ViewData</span>"
              }
            ],
            "groups": [],
            "x": 0.375077495350279,
            "y": 1.0172018348623852,
            "scheduled": false
          },
          "3dcc": {
            "name": "ViewData",
            "canvasName": "ViewData",
            "summary": "Failed to read device property",
            "description": "Failed to read device property",
            "location": "Application",
            "app": "WorkFlowEngine",
            "displayName": "Tools",
            "type": "manual",
            "variables": {
              "incoming": {
                "header": "Unable to read device management properties after 3 attempts.",
                "message": "",
                "body": "The selected device failed to return device management details, kindly select either <b>Retry</b> this task or <b>Abort</b> this workflow.",
                "variables": {},
                "btn_success": "Retry",
                "btn_failure": "Abort"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/workflow_engine/task/ViewData",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>ViewData</span>"
              }
            ],
            "groups": [],
            "x": -0.6001425516749822,
            "y": 1.0206422018348624,
            "scheduled": false
          },
          "7e2": {
            "name": "RunCommand",
            "canvasName": "RunCommand",
            "summary": "Reload",
            "description": "Reload",
            "location": "Application",
            "locationType": null,
            "app": "MOP",
            "type": "automatic",
            "displayName": "MOP",
            "variables": {
              "incoming": {
                "command": "reload now",
                "variables": {},
                "device": "$var.f19e.deviceName"
              },
              "outgoing": {
                "result": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>RunComm</span>and"
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 1.1717296962182269,
            "y": 0.41743119266055045,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "d6ca": {
            "name": "query",
            "canvasName": "query",
            "summary": "Preparation Results",
            "description": "Preparation Results",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": "templateResults",
                "obj": "$var.49f4.job_details"
              },
              "outgoing": {
                "return_data": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "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.038437693738375696,
            "y": 0.26146788990825687,
            "scheduled": false
          },
          "3ef4": {
            "name": "query",
            "canvasName": "query",
            "summary": "Postchecks Results",
            "description": "Postchecks Results",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": "templateResults",
                "obj": "$var.a4f4.job_details"
              },
              "outgoing": {
                "return_data": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "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": 1.6001239925604465,
            "y": 0.2947247706422018,
            "scheduled": false
          },
          "32d9": {
            "name": "evaluation",
            "canvasName": "evaluation",
            "summary": "Eval Auto Approve",
            "description": "Evaluates if ZeroTouch is 'false.'",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "all_true_flag": true,
                "evaluation_groups": [
                  {
                    "all_true_flag": true,
                    "evaluations": [
                      {
                        "query": "",
                        "operand_1": {
                          "variable": "zeroTouchMode",
                          "task": "f19e"
                        },
                        "operator": "==",
                        "operand_2": {
                          "variable": false,
                          "task": "static"
                        }
                      }
                    ]
                  }
                ]
              },
              "outgoing": {
                "return_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>eval</span>uation"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Eval</span>uation Task"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": 1.7011779293242406,
            "y": 0.2889908256880734
          },
          "73f": {
            "name": "viewTemplateResults",
            "canvasName": "viewTemplateResults",
            "summary": "View Pre-Post Differences",
            "description": "View Pre-Post Differences",
            "location": "Application",
            "app": "MOP",
            "displayName": "MOP",
            "type": "manual",
            "variables": {
              "incoming": {
                "mop_template_results": "$var.822d.analytic_template_results"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/mop/task/viewTemplateResults",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>view</span>TemplateResults"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>View</span> MOP Template Results"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>View</span> MOP Template Results"
              }
            ],
            "groups": [],
            "x": 1.972721636701798,
            "y": 0.43922018348623854,
            "scheduled": false
          },
          "1f26": {
            "name": "childJob",
            "canvasName": "childJob",
            "summary": "Write command",
            "description": "Write command",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "task": "",
                "workflow": "Command Template Runner",
                "variables": {
                  "templateName": {
                    "variable": "",
                    "task": "static",
                    "value": "Arista EOS Upgrade Write"
                  },
                  "templateVariables": {
                    "variable": "",
                    "task": "2253",
                    "value": "value"
                  },
                  "devices": {
                    "variable": "",
                    "task": "f19e",
                    "value": "arrayedDevice"
                  },
                  "failureType": {
                    "variable": "",
                    "task": "static",
                    "value": "terminate"
                  },
                  "zeroTouch": {
                    "variable": "",
                    "task": "f19e",
                    "value": "zeroTouchMode"
                  }
                },
                "data_array": "",
                "transformation": "",
                "loopType": ""
              },
              "outgoing": {
                "job_details": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>child</span>Job"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Child</span> Job"
              },
              {
                "key": "description",
                "highlightString": "Runs a <span class='highlight-string'>child</span> job inside a workflow."
              }
            ],
            "groups": [],
            "actor": "job",
            "x": 1.0756354618722876,
            "y": 0.4334862385321101,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "822d": {
            "name": "runAnalyticsTemplate",
            "canvasName": "runAnalyticsTemplate",
            "summary": "Compare Pre-Post Differences",
            "description": "Compare Pre-Post Differences",
            "location": "Application",
            "locationType": null,
            "app": "MOP",
            "type": "automatic",
            "displayName": "MOP",
            "variables": {
              "incoming": {
                "pre": "$var.72aa.return_data",
                "post": "$var.3ef4.return_data",
                "analytic_template_name": "Arista EOS Upgrade",
                "variables": {}
              },
              "outgoing": {
                "analytic_template_results": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "run<span class='highlight-string'>Analytic</span>sTemplate"
              },
              {
                "key": "summary",
                "highlightString": "Run an <span class='highlight-string'>Analytic</span>s Template"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>Analytic</span> Template."
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 1.838189708617483,
            "y": 0.4243119266055046,
            "scheduled": false,
            "retrySettings": {
              "state": [
                "error"
              ],
              "autoRetry": true,
              "limit": 3,
              "delay": 10000
            }
          },
          "72aa": {
            "name": "query",
            "canvasName": "query",
            "summary": "Prechecks Results",
            "description": "Prechecks Results",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "pass_on_null": false,
                "query": "templateResults",
                "obj": "$var.905d.job_details"
              },
              "outgoing": {
                "return_data": null
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "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.3577185368877867,
            "y": 0.29128440366972475,
            "scheduled": false
          },
          "2fbb": {
            "name": "runTemplatesDiff",
            "canvasName": "runTemplatesDiff",
            "summary": "Run Pre/Post Diff",
            "description": "Run Pre/Post Diff",
            "location": "Application",
            "app": "MOP",
            "displayName": "MOP",
            "type": "manual",
            "variables": {
              "incoming": {
                "pre": "$var.72aa.return_data",
                "post": "$var.3ef4.return_data"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/mop/task/runTemplatesDiff",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>runTempla</span>tesDiff"
              }
            ],
            "groups": [],
            "x": 1.7117172969621823,
            "y": 0.41628440366972475,
            "scheduled": false
          }
        },
        "transitions": {
          "358": {
            "e330": {
              "type": "standard",
              "state": "success"
            }
          },
          "796": {},
          "1436": {
            "5a3c": {
              "type": "standard",
              "state": "failure"
            },
            "a193": {
              "type": "standard",
              "state": "success"
            }
          },
          "2253": {
            "49f4": {
              "type": "standard",
              "state": "success"
            }
          },
          "3233": {
            "ec80": {
              "type": "standard",
              "state": "success"
            },
            "46b0": {
              "type": "standard",
              "state": "failure"
            }
          },
          "4007": {
            "c11d": {
              "type": "standard",
              "state": "success"
            },
            "46ff": {
              "type": "standard",
              "state": "failure"
            }
          },
          "5695": {},
          "6284": {},
          "8035": {},
          "8101": {},
          "8664": {},
          "8738": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            }
          },
          "workflow_start": {
            "f19e": {
              "type": "standard",
              "state": "success"
            }
          },
          "workflow_end": {},
          "cc5": {},
          "510c": {},
          "c34c": {},
          "d022": {},
          "1ba3": {},
          "a358": {},
          "f19e": {
            "c11d": {
              "type": "standard",
              "state": "error"
            },
            "a63e": {
              "type": "standard",
              "state": "success"
            }
          },
          "c11d": {
            "f19e": {
              "type": "revert",
              "state": "success"
            }
          },
          "f38f": {
            "2253": {
              "type": "standard",
              "state": "success"
            }
          },
          "7a85": {},
          "73b2": {},
          "ffd9": {},
          "7ea8": {},
          "320e": {
            "8738": {
              "type": "standard",
              "state": "failure"
            },
            "c11d": {
              "type": "standard",
              "state": "success"
            }
          },
          "b5dd": {},
          "e11e": {},
          "90f": {},
          "c1a1": {},
          "e75e": {},
          "a63e": {
            "2fab": {
              "type": "standard",
              "state": "success"
            },
            "320e": {
              "type": "standard",
              "state": "failure"
            }
          },
          "2fab": {
            "266c": {
              "type": "standard",
              "state": "success"
            }
          },
          "b630": {},
          "266c": {
            "3dcc": {
              "type": "standard",
              "state": "failure"
            },
            "53fb": {
              "type": "standard",
              "state": "success"
            }
          },
          "a3d7": {},
          "49f4": {
            "d6ca": {
              "type": "standard",
              "state": "success"
            }
          },
          "4d14": {},
          "1d9e": {},
          "adf8": {
            "8738": {
              "type": "standard",
              "state": "failure"
            },
            "c11d": {
              "type": "standard",
              "state": "success"
            }
          },
          "5a3c": {
            "adf8": {
              "type": "standard",
              "state": "success"
            }
          },
          "33d4": {},
          "30ee": {},
          "a193": {
            "75cf": {
              "type": "standard",
              "state": "failure"
            },
            "905d": {
              "type": "standard",
              "state": "success"
            }
          },
          "75cf": {
            "b509": {
              "type": "standard",
              "state": "success"
            }
          },
          "b509": {
            "8738": {
              "type": "standard",
              "state": "failure"
            },
            "c11d": {
              "type": "standard",
              "state": "success"
            }
          },
          "bf5b": {},
          "34de": {},
          "cc18": {},
          "905d": {
            "fc82": {
              "type": "standard",
              "state": "failure"
            },
            "72aa": {
              "type": "standard",
              "state": "success"
            }
          },
          "e31e": {
            "fc82": {
              "type": "standard",
              "state": "failure"
            },
            "1f26": {
              "type": "standard",
              "state": "success"
            }
          },
          "d39c": {
            "3ac": {
              "type": "standard",
              "state": "success"
            }
          },
          "3ac": {
            "fa81": {
              "type": "standard",
              "state": "success"
            },
            "fc82": {
              "type": "standard",
              "state": "error"
            }
          },
          "37b0": {
            "358": {
              "type": "standard",
              "state": "failure"
            },
            "e31e": {
              "type": "standard",
              "state": "success"
            }
          },
          "a4f4": {
            "3ef4": {
              "type": "standard",
              "state": "success"
            }
          },
          "efec": {
            "a4f4": {
              "type": "standard",
              "state": "success"
            }
          },
          "e374": {
            "9cc1": {
              "type": "standard",
              "state": "success"
            }
          },
          "9cc1": {
            "efec": {
              "type": "standard",
              "state": "success"
            },
            "60d6": {
              "type": "standard",
              "state": "failure"
            }
          },
          "e0cb": {},
          "60d6": {
            "8738": {
              "type": "standard",
              "state": "failure"
            },
            "e374": {
              "type": "revert",
              "state": "success"
            }
          },
          "fa81": {
            "37b0": {
              "type": "standard",
              "state": "success"
            },
            "e31e": {
              "type": "standard",
              "state": "failure"
            }
          },
          "46ff": {
            "91b6": {
              "type": "standard",
              "state": "success"
            },
            "46b0": {
              "type": "standard",
              "state": "failure"
            }
          },
          "91b6": {
            "3233": {
              "type": "standard",
              "state": "success"
            }
          },
          "ec80": {
            "f38f": {
              "type": "standard",
              "state": "success"
            }
          },
          "e330": {
            "fc82": {
              "type": "standard",
              "state": "error"
            },
            "workflow_end": {
              "type": "standard",
              "state": "success"
            }
          },
          "53fb": {
            "4007": {
              "type": "standard",
              "state": "failure"
            },
            "46ff": {
              "type": "standard",
              "state": "success"
            }
          },
          "46b0": {
            "f38f": {
              "type": "standard",
              "state": "success"
            },
            "46ff": {
              "type": "revert",
              "state": "failure"
            }
          },
          "fc82": {
            "8738": {
              "type": "standard",
              "state": "failure"
            },
            "c11d": {
              "type": "standard",
              "state": "success"
            }
          },
          "3dcc": {
            "8738": {
              "type": "standard",
              "state": "failure"
            },
            "266c": {
              "type": "revert",
              "state": "success"
            }
          },
          "93d5": {},
          "7e2": {
            "e374": {
              "type": "standard",
              "state": "success"
            }
          },
          "a2ae": {},
          "d6ca": {
            "1436": {
              "type": "standard",
              "state": "success"
            }
          },
          "3ef4": {
            "32d9": {
              "type": "standard",
              "state": "success"
            }
          },
          "32d9": {
            "workflow_end": {
              "type": "standard",
              "state": "failure"
            },
            "2fbb": {
              "type": "standard",
              "state": "success"
            }
          },
          "73f": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            }
          },
          "1f26": {
            "7e2": {
              "type": "standard",
              "state": "success"
            },
            "fc82": {
              "type": "standard",
              "state": "failure"
            }
          },
          "822d": {
            "73f": {
              "type": "standard",
              "state": "success"
            }
          },
          "72aa": {
            "d39c": {
              "type": "standard",
              "state": "success"
            }
          },
          "2fbb": {
            "822d": {
              "type": "standard",
              "state": "success"
            }
          }
        },
        "font_size": 12,
        "last_updated": "2022-01-10T21:51:06.586Z",
        "last_updated_by": {
          "provenance": "Itential-Okta",
          "username": "kay.wolfe@itential.com",
          "firstname": "Kay",
          "inactive": false,
          "email": "kay.wolfe@itential.com"
        },
        "lastUpdatedVersion": "5.40.5-2021.1.52.0",
        "inputSchema": {
          "type": "object",
          "properties": {
            "formData": {
              "$id": "formData",
              "type": "object",
              "properties": {
                "zeroTouch": {
                  "type": "boolean",
                  "examples": [
                    true,
                    false
                  ]
                },
                "healthCheckVariables": {
                  "type": "object",
                  "properties": {
                    "numberOfRetries": {
                      "type": "integer",
                      "examples": [
                        9
                      ]
                    },
                    "pingDelay": {
                      "type": "integer",
                      "examples": [
                        90
                      ]
                    },
                    "numberOfRetriesStability": {
                      "type": "integer",
                      "examples": [
                        9
                      ]
                    }
                  },
                  "required": [
                    "numberOfRetriesStability",
                    "pingDelay",
                    "numberOfRetries"
                  ]
                },
                "eosDevice": {
                  "type": "string",
                  "examples": [
                    "kay_dsup1063-1634912322000"
                  ]
                },
                "imageFile": {
                  "type": "string",
                  "examples": [
                    "vEOS64-lab-4%2E26%2E2F%2Eswi"
                  ]
                },
                "md5Checksum": {
                  "type": "string",
                  "examples": [
                    "f1bea7e3a8aae11a0fafd485028c16e1"
                  ]
                }
              },
              "required": [
                "healthCheckVariables",
                "zeroTouch",
                "eosDevice",
                "imageFile"
              ]
            },
            "_id": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            }
          },
          "required": [
            "formData",
            "_id"
          ]
        },
        "outputSchema": {
          "type": "object",
          "properties": {
            "formData": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "_id": {
              "type": "string",
              "pattern": "^[0-9a-f]{24}$"
            },
            "initiator": {
              "type": "string"
            },
            "variables": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "oldImageFile": {
              "type": [
                "string",
                "number",
                "object",
                "integer",
                "array",
                "boolean",
                "null"
              ],
              "examples": [
                "value"
              ]
            },
            "adapter_id": {
              "type": [
                "string",
                "number",
                "object",
                "integer",
                "array",
                "boolean",
                "null"
              ],
              "examples": [
                "value"
              ]
            }
          }
        },
        "created": "2021-11-16T14:34:28.811Z",
        "created_by": {
          "provenance": "Itential-Okta",
          "username": "kay.wolfe@itential.com",
          "firstname": "Kay",
          "inactive": false,
          "email": "kay.wolfe@itential.com"
        },
        "createdVersion": "5.40.5-2021.1.35.0",
        "preAutomationTime": 0,
        "sla": 0,
        "decorators": [
          {
            "type": "encryption",
            "pointer": "/variables/deviceName"
          }
        ],
        "tags": [],
        "groups": []
      }
    },
    {
      "type": "workflow",
      "data": {
        "created": "2021-10-19T16:37:33.987Z",
        "createdVersion": "5.42.1",
        "created_by": {
          "provenance": "Itential-Okta",
          "username": "zach.baskin@itential.com",
          "firstname": "Zach",
          "inactive": false
        },
        "description": "",
        "font_size": 12,
        "inputSchema": {
          "type": "object",
          "properties": {
            "templateName": {
              "title": "template",
              "type": "string",
              "examples": [
                "show version"
              ]
            },
            "templateVariables": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "devices": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "zeroTouch": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "failureType": {
              "type": "string"
            }
          },
          "required": [
            "templateName",
            "templateVariables",
            "devices",
            "zeroTouch",
            "failureType"
          ]
        },
        "lastUpdatedVersion": "5.40.5-2021.1.52.0",
        "last_updated": "2021-10-20T18:02:01.706Z",
        "last_updated_by": {
          "provenance": "Itential-Okta",
          "username": "kay.wolfe@itential.com",
          "firstname": "Kay",
          "inactive": false,
          "email": "kay.wolfe@itential.com"
        },
        "name": "Command Template Runner",
        "outputSchema": {
          "type": "object",
          "properties": {
            "templateName": {
              "title": "template",
              "type": "string",
              "examples": [
                "show version"
              ]
            },
            "templateVariables": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "devices": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "zeroTouch": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "failureType": {
              "type": "string"
            },
            "_id": {
              "type": "string",
              "pattern": "^[0-9a-f]{24}$"
            },
            "initiator": {
              "type": "string"
            },
            "templateResults": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "outcome": {
              "type": "string"
            }
          }
        },
        "tasks": {
          "workflow_start": {
            "name": "workflow_start",
            "groups": [],
            "x": 0,
            "y": 0.5
          },
          "workflow_end": {
            "name": "workflow_end",
            "groups": [],
            "x": 1,
            "y": 0.5
          },
          "8ce4": {
            "name": "RunCommandTemplate",
            "canvasName": "RunCommandTemplate",
            "summary": "Run Command Template",
            "description": "Runs the input Command Template against input devices.",
            "location": "Application",
            "locationType": null,
            "app": "MOP",
            "type": "automatic",
            "displayName": "MOP",
            "variables": {
              "incoming": {
                "template": "$var.job.templateName",
                "variables": "$var.job.templateVariables",
                "devices": "$var.job.devices"
              },
              "outgoing": {
                "mop_template_results": "$var.job.templateResults"
              },
              "error": "",
              "decorators": []
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>RunCommand</span>Template"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": 0.25365434221840066,
            "y": 0.4969173859432799,
            "scheduled": false
          },
          "81d8": {
            "name": "viewTemplateResults",
            "canvasName": "viewTemplateResults",
            "summary": "View Command Template Results",
            "description": "This window displays the individual results of each command that is run on the command template, whether it be PASS or FAIL.",
            "location": "Application",
            "app": "MOP",
            "displayName": "MOP",
            "type": "manual",
            "variables": {
              "incoming": {
                "mop_template_results": "$var.8ce4.mop_template_results"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/mop/task/viewTemplateResults",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>viewTe</span>mplateResults"
              }
            ],
            "groups": [],
            "x": 0.4075666380051591,
            "y": 0.3218249075215783,
            "scheduled": false
          },
          "6bd2": {
            "name": "evaluation",
            "canvasName": "evaluation",
            "summary": "Eval Auto Approve",
            "description": "Evaluates if the command template passed all tests and if ZeroTouch is 'true.' A failure of either presents a window to more closely examine the results.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "all_true_flag": true,
                "evaluation_groups": [
                  {
                    "all_true_flag": true,
                    "evaluations": [
                      {
                        "query": "result",
                        "operand_1": {
                          "variable": "mop_template_results",
                          "task": "8ce4"
                        },
                        "operator": "==",
                        "operand_2": {
                          "variable": true,
                          "task": "static"
                        }
                      },
                      {
                        "query": "",
                        "operand_1": {
                          "variable": "zeroTouch",
                          "task": "job",
                          "editable": true
                        },
                        "operator": "==",
                        "operand_2": {
                          "variable": true,
                          "task": "static"
                        }
                      }
                    ]
                  }
                ]
              },
              "outgoing": {
                "return_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>eval</span>uation"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Eval</span>uation Task"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": 0.4058469475494411,
            "y": 0.49815043156596794
          },
          "f1a7": {
            "name": "ViewData",
            "canvasName": "ViewData",
            "summary": "View Data",
            "description": "Presents a window with the final opportunity to retry the command template or exit with a failure state.",
            "location": "Application",
            "app": "WorkFlowEngine",
            "displayName": "Tools",
            "type": "manual",
            "variables": {
              "incoming": {
                "header": "Template Failed",
                "message": "The Command Template has failed. Do you want to retry or skip?",
                "body": "",
                "variables": {},
                "btn_success": "Retry",
                "btn_failure": "$var.job.failureType"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/workflow_engine/task/ViewData",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>ViewData</span>"
              }
            ],
            "groups": [],
            "x": 0.49699054170249357,
            "y": 0.11713933415536375,
            "scheduled": false
          },
          "add9": {
            "name": "evaluation",
            "canvasName": "evaluation",
            "summary": "Eval Success",
            "description": "Evaluates whether the command template passed all tests.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "all_true_flag": false,
                "evaluation_groups": [
                  {
                    "all_true_flag": false,
                    "evaluations": [
                      {
                        "query": "result",
                        "operand_1": {
                          "variable": "mop_template_results",
                          "task": "8ce4",
                          "editable": true
                        },
                        "operator": "==",
                        "operand_2": {
                          "variable": true,
                          "task": "static"
                        }
                      }
                    ]
                  }
                ]
              },
              "outgoing": {
                "return_value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>eval</span>uation"
              },
              {
                "key": "summary",
                "highlightString": "Run <span class='highlight-string'>Eval</span>uation Task"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": 0.4972290144024077,
            "y": 0.49938347718865606
          },
          "dab6": {
            "name": "newVariable",
            "canvasName": "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",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "name": "outcome",
                "value": "$var.job.failureType"
              },
              "outgoing": {
                "value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "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.7441197434069851,
            "y": 0.2923387096774194
          },
          "993f": {
            "name": "newVariable",
            "canvasName": "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",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "name": "outcome",
                "value": "success"
              },
              "outgoing": {
                "value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "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.7386070507308684,
            "y": 0.5063437139561707
          },
          "1b3d": {
            "name": "ViewData",
            "canvasName": "ViewData",
            "summary": "Command Template Error",
            "description": "This error is displayed if the command template errors out without completing.",
            "location": "Application",
            "app": "WorkFlowEngine",
            "displayName": "Tools",
            "type": "manual",
            "variables": {
              "incoming": {
                "header": "Command Template Error",
                "message": "There was an error running the command template.",
                "body": "$var.8ce4.error",
                "variables": {},
                "btn_success": "Retry",
                "btn_failure": "$var.job.failureType"
              },
              "outgoing": {},
              "error": "",
              "decorators": []
            },
            "view": "/workflow_engine/task/ViewData",
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>View</span>Data"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>View</span> Data"
              }
            ],
            "groups": [],
            "x": 0.2594440484675695,
            "y": 0.15628415300546447,
            "scheduled": false
          }
        },
        "transitions": {
          "workflow_start": {
            "8ce4": {
              "type": "standard",
              "state": "success"
            }
          },
          "workflow_end": {},
          "8ce4": {
            "6bd2": {
              "type": "standard",
              "state": "success"
            },
            "1b3d": {
              "type": "standard",
              "state": "error"
            }
          },
          "81d8": {
            "8ce4": {
              "type": "revert",
              "state": "failure"
            },
            "add9": {
              "type": "standard",
              "state": "success"
            }
          },
          "6bd2": {
            "add9": {
              "type": "standard",
              "state": "success"
            },
            "81d8": {
              "type": "standard",
              "state": "failure"
            }
          },
          "f1a7": {
            "8ce4": {
              "type": "revert",
              "state": "success"
            },
            "dab6": {
              "type": "standard",
              "state": "failure"
            }
          },
          "add9": {
            "f1a7": {
              "type": "standard",
              "state": "failure"
            },
            "993f": {
              "type": "standard",
              "state": "success"
            }
          },
          "dab6": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            }
          },
          "993f": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            }
          },
          "9dc1": {},
          "1b3d": {
            "dab6": {
              "type": "standard",
              "state": "failure"
            },
            "8ce4": {
              "type": "revert",
              "state": "success"
            }
          }
        },
        "type": "automation",
        "canvasVersion": 1,
        "tags": [],
        "groups": []
      }
    },
    {
      "type": "workflow",
      "data": {
        "name": "Device-Connection-Health-Check",
        "tasks": {
          "3552": {
            "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": "outcome",
                "value": "success"
              },
              "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> <span class='highlight-string'>Job</span> variable by Job ID and assign it a value."
              },
              {
                "key": "summary",
                "highlightString": "Create a <span class='highlight-string'>Job</span> Variable"
              }
            ],
            "groups": [],
            "x": 0.3925561797752809,
            "y": 0.23215984776403426
          },
          "3872": {
            "name": "transformation",
            "canvasName": "transformation",
            "summary": "JSON Transformation",
            "description": "Perform a JSON Transformation using the JST library.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "tr_id": "6037fc47058d4a65713f3868",
                "variableMap": {
                  "tally": "$var.job.failureCounter"
                },
                "options": {
                  "extractOutput": true
                }
              },
              "outgoing": {
                "tally": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "description",
                "highlightString": "Perform a JSON Transformation using the <span class='highlight-string'>JST</span> library."
              }
            ],
            "groups": [],
            "x": -0.18047752808988765,
            "y": 0.12749762131303521,
            "task_name": "incrementNumber"
          },
          "8601": {
            "name": "transformation",
            "canvasName": "transformation",
            "summary": "JSON Transformation",
            "description": "Perform a JSON Transformation using the JST library.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "tr_id": "6037fc47058d4a65713f3868",
                "variableMap": {
                  "tally": "$var.job.consecutiveSuccess"
                },
                "options": {
                  "extractOutput": true
                }
              },
              "outgoing": {
                "tally": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "description",
                "highlightString": "Perform a JSON Transformation using the <span class='highlight-string'>JST</span> library."
              }
            ],
            "groups": [],
            "x": -0.11025280898876405,
            "y": 0.2340627973358706,
            "task_name": "incrementNumber"
          },
          "9839": {
            "name": "newVariable",
            "canvasName": "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",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "name": "consecutiveSuccess",
                "value": 0
              },
              "outgoing": {
                "value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>newVar</span>iable"
              }
            ],
            "groups": [],
            "x": -0.5066948555320648,
            "y": 0.2497398543184183
          },
          "workflow_start": {
            "name": "workflow_start",
            "groups": [],
            "x": -0.8434913468773514,
            "y": 0.24753694581280788
          },
          "workflow_end": {
            "name": "workflow_end",
            "groups": [],
            "x": 0.5287921348314607,
            "y": 0.2340627973358706
          },
          "18d6": {
            "name": "isAlive",
            "summary": "Test Connection",
            "description": "This method will retrieve the status of the device in Automation Gateway",
            "location": "Application",
            "locationType": null,
            "app": "ConfigurationManager",
            "displayName": "ConfigurationManager",
            "type": "automatic",
            "variables": {
              "incoming": {
                "name": "$var.job.device"
              },
              "outgoing": {
                "status": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "app",
                "highlightString": "<span class='highlight-string'>Configu</span>rationManager"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": -0.28893905191873587,
            "y": 0.24630541871921183,
            "scheduled": false
          },
          "567c": {
            "name": "delay",
            "summary": "Delay a Job",
            "description": "Wait for #seconds for device to come alive before connecting.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "time": "$var.job.pingDelay"
              },
              "outgoing": {
                "time_in_milliseconds": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>delay</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Delay</span> a Job"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Delay</span> a Job for a duration by Job ID and number of seconds."
              }
            ],
            "groups": [],
            "x": -0.3890142964635064,
            "y": 0.24753694581280788,
            "scheduled": false
          },
          "f195": {
            "name": "evaluation",
            "summary": "Have we exceeded numberOfRetries",
            "description": "Check to verify that the length of failCounter does not exceed our numberOfRetries.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "all_true_flag": false,
                "evaluation_groups": [
                  {
                    "all_true_flag": false,
                    "evaluations": [
                      {
                        "query": "",
                        "operand_1": {
                          "variable": "failureCounter",
                          "task": "job"
                        },
                        "operator": ">",
                        "operand_2": {
                          "variable": "numberOfRetries",
                          "task": "job"
                        }
                      }
                    ]
                  }
                ]
              },
              "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 Task"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": -0.1875,
            "y": -0.1493815413891532
          },
          "3a95": {
            "name": "evaluation",
            "summary": "Evaluate connection response from device.",
            "description": "Evaluate connection response from device.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "all_true_flag": false,
                "evaluation_groups": [
                  {
                    "all_true_flag": false,
                    "evaluations": [
                      {
                        "query": ".response",
                        "operand_1": {
                          "variable": "status",
                          "task": "18d6"
                        },
                        "operator": "==",
                        "operand_2": {
                          "variable": true,
                          "task": "static"
                        }
                      },
                      {
                        "query": "",
                        "operand_1": {
                          "variable": "status",
                          "task": "18d6"
                        },
                        "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 Task"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": -0.17970401691331925,
            "y": 0.2351716961498439
          },
          "3eba": {
            "name": "evaluation",
            "summary": "Count success attempts",
            "description": "Check to verify that the total number of successes is not more than the numberOfRetriesStability.   If it's not, then go back and try again.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "all_true_flag": false,
                "evaluation_groups": [
                  {
                    "all_true_flag": false,
                    "evaluations": [
                      {
                        "query": "",
                        "operand_1": {
                          "variable": "consecutiveSuccess",
                          "task": "job"
                        },
                        "operator": ">",
                        "operand_2": {
                          "variable": "numberOfRetries",
                          "task": "job"
                        }
                      }
                    ]
                  }
                ]
              },
              "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 Task"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": 0.2970505617977528,
            "y": 0.23215984776403426
          },
          "6ca1": {
            "name": "delay",
            "summary": "Delay before next test",
            "description": "Wait for 1 second before connecting to the device to continue stability testing.",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "time": 1
              },
              "outgoing": {
                "time_in_milliseconds": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "name",
                "highlightString": "<span class='highlight-string'>delay</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Delay</span> a Job"
              },
              {
                "key": "description",
                "highlightString": "<span class='highlight-string'>Delay</span> a Job for a duration by Job ID and number of seconds."
              }
            ],
            "groups": [],
            "x": 0.15941011235955055,
            "y": 0.23215984776403426,
            "scheduled": false
          },
          "16f7": {
            "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": "outcome",
                "value": "fail"
              },
              "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> <span class='highlight-string'>Job</span> variable by Job ID and assign it a value."
              },
              {
                "key": "summary",
                "highlightString": "Create a <span class='highlight-string'>Job</span> Variable"
              }
            ],
            "groups": [],
            "x": 0.38553370786516855,
            "y": -0.15128449096098953
          },
          "b88f": {
            "name": "evaluation",
            "summary": "Verify required job variables are greater than 0",
            "description": "Verify the follow values are greater than 0 : numberOfRetries, numberOfRetriesStability, pingDelay",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "displayName": "WorkFlowEngine",
            "type": "operation",
            "variables": {
              "incoming": {
                "all_true_flag": false,
                "evaluation_groups": [
                  {
                    "all_true_flag": true,
                    "evaluations": [
                      {
                        "query": "",
                        "operand_1": {
                          "variable": "numberOfRetries",
                          "task": "job",
                          "editable": true
                        },
                        "operator": ">",
                        "operand_2": {
                          "variable": 0,
                          "task": "static"
                        }
                      },
                      {
                        "query": "",
                        "operand_1": {
                          "variable": "numberOfRetriesStability",
                          "task": "job",
                          "editable": true
                        },
                        "operator": ">",
                        "operand_2": {
                          "variable": 0,
                          "task": "static"
                        }
                      },
                      {
                        "query": "",
                        "operand_1": {
                          "variable": "pingDelay",
                          "task": "job",
                          "editable": true
                        },
                        "operator": ">",
                        "operand_2": {
                          "variable": 0,
                          "task": "static",
                          "editable": true
                        }
                      }
                    ]
                  }
                ]
              },
              "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 Task"
              },
              {
                "key": "description",
                "highlightString": "Run an <span class='highlight-string'>eval</span>uation"
              }
            ],
            "groups": [],
            "x": -0.7599699021820918,
            "y": 0.24753694581280788
          },
          "2e93": {
            "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": "outcome",
                "value": "bad input"
              },
              "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> <span class='highlight-string'>Job</span> variable by Job ID and assign it a value."
              },
              {
                "key": "summary",
                "highlightString": "Create a <span class='highlight-string'>Job</span> Variable"
              }
            ],
            "groups": [],
            "x": 0.40168539325842695,
            "y": 0.3967649857278782
          },
          "150f": {
            "name": "newVariable",
            "canvasName": "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",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "name": "failureCounter",
                "value": 0
              },
              "outgoing": {
                "value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>newVar</span>iable"
              }
            ],
            "groups": [],
            "x": -0.6321353065539113,
            "y": 0.25078043704474506
          },
          "187a": {
            "name": "reattempt",
            "canvasName": "reattempt",
            "summary": "Re-attempt Test Connection",
            "description": "If the test connection task is unable to connect due to an adapter failure, we will reattempt by the number of retries passed in the job variables.",
            "location": "Application",
            "locationType": null,
            "app": "MOP",
            "type": "automatic",
            "displayName": "MOP",
            "variables": {
              "incoming": {
                "job_id": "$var.job._id",
                "attemptID": "retry_test_connection",
                "minutes": 0,
                "attempts": "$var.job.numberOfRetries"
              },
              "outgoing": {
                "response": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>reattempt</span>"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": -0.2898212898212898,
            "y": 0.41427155599603566,
            "scheduled": false
          },
          "52d9": {
            "name": "stub",
            "canvasName": "stub",
            "summary": "Exit Workflow",
            "description": "One of the values was not greater than 0 : numberOfRetries, numberOfRetriesStability, secondsBetweenRetry",
            "location": "Application",
            "locationType": null,
            "app": "WorkFlowEngine",
            "type": "automatic",
            "displayName": "Tools",
            "variables": {
              "incoming": {
                "type": "success",
                "delay": 0,
                "response": "success"
              },
              "outgoing": {
                "response": null
              },
              "error": ""
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>stub</span>"
              },
              {
                "key": "summary",
                "highlightString": "<span class='highlight-string'>Stub</span>"
              },
              {
                "key": "description",
                "highlightString": "Create a <span class='highlight-string'>stub</span> for an automated task"
              }
            ],
            "groups": [],
            "actor": "Pronghorn",
            "x": -0.7618040873854828,
            "y": 0.4172736732570239,
            "scheduled": false
          },
          "471d": {
            "name": "newVariable",
            "canvasName": "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",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "name": "consecutiveSuccess",
                "value": "$var.8601.tally"
              },
              "outgoing": {
                "value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>newVar</span>iable"
              }
            ],
            "groups": [],
            "x": 0.011938202247191011,
            "y": 0.22930542340627974
          },
          "8aa1": {
            "name": "newVariable",
            "canvasName": "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",
            "type": "operation",
            "displayName": "WorkFlowEngine",
            "variables": {
              "incoming": {
                "name": "failureCounter",
                "value": "$var.3872.tally"
              },
              "outgoing": {
                "value": null
              }
            },
            "deprecated": false,
            "matched": [
              {
                "key": "canvasName",
                "highlightString": "<span class='highlight-string'>newVar</span>iable"
              }
            ],
            "groups": [],
            "x": -0.18328651685393257,
            "y": -0.003805899143672693
          }
        },
        "transitions": {
          "609": {},
          "3552": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            }
          },
          "3872": {
            "8aa1": {
              "type": "standard",
              "state": "success"
            }
          },
          "8089": {},
          "8335": {},
          "8601": {
            "471d": {
              "type": "standard",
              "state": "success"
            }
          },
          "8675": {},
          "9839": {
            "567c": {
              "type": "standard",
              "state": "success"
            }
          },
          "workflow_start": {
            "b88f": {
              "type": "standard",
              "state": "success"
            }
          },
          "workflow_end": {},
          "7c30": {},
          "a4db": {},
          "18d6": {
            "3a95": {
              "type": "standard",
              "state": "success"
            },
            "187a": {
              "type": "standard",
              "state": "error"
            }
          },
          "e1cc": {},
          "a9c9": {},
          "542d": {},
          "567c": {
            "18d6": {
              "type": "standard",
              "state": "success"
            }
          },
          "ff59": {},
          "4e82": {},
          "3aa0": {},
          "d193": {},
          "cfe8": {},
          "b3cb": {},
          "f195": {
            "9839": {
              "type": "revert",
              "state": "failure"
            },
            "16f7": {
              "type": "standard",
              "state": "success"
            }
          },
          "3a95": {
            "3872": {
              "type": "standard",
              "state": "failure"
            },
            "8601": {
              "type": "standard",
              "state": "success"
            }
          },
          "3eba": {
            "3552": {
              "type": "standard",
              "state": "success"
            },
            "18d6": {
              "type": "revert",
              "state": "failure"
            }
          },
          "6ca1": {
            "3eba": {
              "type": "standard",
              "state": "success"
            }
          },
          "16f7": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            }
          },
          "461c": {},
          "b544": {},
          "f921": {},
          "b88f": {
            "150f": {
              "type": "standard",
              "state": "success"
            },
            "52d9": {
              "type": "standard",
              "state": "failure"
            }
          },
          "2e93": {
            "workflow_end": {
              "type": "standard",
              "state": "success"
            }
          },
          "150f": {
            "9839": {
              "type": "standard",
              "state": "success"
            }
          },
          "187a": {
            "18d6": {
              "type": "revert",
              "state": "success"
            },
            "2e93": {
              "type": "standard",
              "state": "error"
            }
          },
          "52d9": {
            "2e93": {
              "type": "standard",
              "state": "success"
            }
          },
          "c17b": {},
          "77df": {},
          "471d": {
            "6ca1": {
              "type": "standard",
              "state": "success"
            }
          },
          "8aa1": {
            "f195": {
              "type": "standard",
              "state": "success"
            }
          }
        },
        "font_size": 12,
        "created": "2019-08-15T21:09:06.430Z",
        "created_by": {
          "provenance": "Local AAA",
          "username": "Itential Artifacts",
          "firstname": "admin",
          "inactive": true,
          "email": ""
        },
        "createdVersion": "5.10.4-2020.1.45.0",
        "last_updated": "2021-10-14T17:31:20.086Z",
        "last_updated_by": {
          "provenance": "Itential-Okta",
          "username": "zack.strulovitch@itential.com",
          "firstname": "Zack",
          "inactive": false
        },
        "lastUpdatedVersion": "5.40.5-2021.1.52.0",
        "type": "automation",
        "description": null,
        "inputSchema": {
          "type": "object",
          "properties": {
            "device": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "pingDelay": {
              "type": "integer",
              "minimum": 1,
              "examples": [
                1200
              ]
            },
            "numberOfRetries": {
              "title": "attempts",
              "type": "integer",
              "examples": [
                2
              ]
            },
            "numberOfRetriesStability": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "_id": {
              "title": "job_id",
              "type": "string",
              "examples": [
                "test"
              ]
            }
          },
          "required": [
            "device",
            "pingDelay",
            "numberOfRetries",
            "numberOfRetriesStability",
            "_id"
          ]
        },
        "outputSchema": {
          "type": "object",
          "properties": {
            "device": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "pingDelay": {
              "type": "integer",
              "minimum": 1,
              "examples": [
                1200
              ]
            },
            "numberOfRetries": {
              "title": "attempts",
              "type": "integer",
              "examples": [
                2
              ]
            },
            "numberOfRetriesStability": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "_id": {
              "type": "string",
              "pattern": "^[0-9a-f]{24}$"
            },
            "initiator": {
              "type": "string"
            },
            "outcome": {
              "type": "string"
            },
            "failureCounter": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            },
            "consecutiveSuccess": {
              "type": [
                "array",
                "boolean",
                "null",
                "number",
                "object",
                "string"
              ]
            }
          }
        },
        "tags": [],
        "groups": []
      }
    },
    {
      "type": "json-forms",
      "data": {
        "id": "61df2fe35278885ed5812f68",
        "created": "2022-01-12T19:43:05.513Z",
        "createdBy": "zack.strulovitch@itential.com",
        "lastUpdated": "2022-01-12T19:47:31.812Z",
        "lastUpdatedBy": "zack.strulovitch@itential.com",
        "name": "Arista EOS Upgrade",
        "description": "User input form for Arista EOS Upgrade",
        "struct": {
          "type": "array",
          "items": [
            {
              "nodeId": "cecd8402-4b5d-4497-998b-dc8f26944b75",
              "type": "string",
              "title": "EOS Device",
              "description": "",
              "placeholder": "Select a device",
              "required": true,
              "enum": [],
              "binding": true,
              "rel": "collection",
              "targetPointer": "/enum",
              "method": "POST",
              "base": "/configuration_manager",
              "href": "/devices",
              "body": {
                "options": {
                  "limit": 2000,
                  "start": 0,
                  "sort": [
                    {
                      "name": -1,
                      "address": 1,
                      "port": -1
                    }
                  ],
                  "order": "ascending"
                }
              },
              "sourceKeyPointer": "/name",
              "transformation": "",
              "sourcePointer": "/list"
            },
            {
              "nodeId": "21a7b79f-7e61-4bc4-9460-1dbbd703824f",
              "type": "string",
              "title": "Image file",
              "description": "Files must be already located on the device prior to the start of this workflow.",
              "placeholder": "fileName.swi",
              "required": true,
              "enum": [
                {
                  "id": "91ae98e9-ceb1-456e-9eda-8e7fb25ae8c2",
                  "label": "vEOS64-lab-4.26.2F.swi",
                  "value": "vEOS64-lab-4.26.2F.swi"
                },
                {
                  "id": "9c04c56d-339a-4cc8-8e14-94e9f7ef26dc",
                  "label": "vEOS64-lab-4.25.5.1M.swi",
                  "value": "vEOS64-lab-4.25.5.1M.swi"
                }
              ],
              "binding": false,
              "rel": "collection",
              "targetPointer": "/enum",
              "method": null,
              "base": null,
              "href": null,
              "sourcePointer": null,
              "sourceKeyPointer": null
            },
            {
              "nodeId": "bb5bb46a-6494-4f37-90e6-751f7adefcae",
              "type": "string",
              "title": "MD5 checksum",
              "description": "*Optional. The MD5 checksum is available from the EOS download page of the Arista website.",
              "placeholder": "(Optional) Enter the MD5 checksum value.",
              "required": false,
              "readOnly": false,
              "binding": false,
              "rel": "item",
              "targetPointer": "/default"
            },
            {
              "nodeId": "61fbf9f8-ffd7-41bd-b80d-efdfe8617d13",
              "type": "boolean",
              "title": "Zero Touch",
              "description": "Check  “Zero Touch” to run sunny day path end to end with no manual tasks. Leave unchecked to run automation in Verbose mode to view MOP template results and all error logging.",
              "default": true,
              "enum": [
                {
                  "id": "b7444382-e4ba-423f-af61-6a7d6ff1376e",
                  "value": true
                },
                {
                  "id": "a1209b4d-5c14-4b27-ac53-8f55c46dab27",
                  "value": false
                }
              ]
            },
            {
              "nodeId": "f1d62ead-1f46-4d49-aafe-7fcc4f51f70f",
              "type": "object",
              "description": "",
              "items": [
                {
                  "nodeId": "4f78a073-7d8f-48d4-9f78-a3e98c4984d2",
                  "type": "number",
                  "widget": "updown",
                  "title": "Ping Delay",
                  "description": "Number of seconds to wait before trying to establish a connection with the device after a failed ping. *Minimum required 60 seconds",
                  "placeholder": "Enter number of seconds (min. 60)",
                  "required": true,
                  "minimum": 60
                },
                {
                  "nodeId": "f941edf2-406d-4e77-958f-dc87675425fc",
                  "type": "number",
                  "widget": "updown",
                  "title": "Number of Retries",
                  "description": "Maximum number of times to reattempt pings for a successful connection with the device before concluding failure.",
                  "placeholder": "Enter a number",
                  "required": true,
                  "minimum": 1
                },
                {
                  "nodeId": "89d6aa73-859a-4bc9-b3bf-0a210a59d6da",
                  "type": "number",
                  "widget": "updown",
                  "title": "Number of Retries Stability",
                  "description": "The number requirement for consecutive successful pings (to validate interface stability).",
                  "placeholder": "Enter a number",
                  "required": true,
                  "minimum": 1
                }
              ],
              "title": "Health Check Variables"
            }
          ]
        },
        "schema": {
          "title": "Arista EOS Upgrade",
          "description": "User input form for Arista EOS Upgrade",
          "type": "object",
          "required": [
            "eosDevice",
            "imageFile"
          ],
          "properties": {
            "eosDevice": {
              "type": "string",
              "title": "EOS Device",
              "description": "",
              "enum": []
            },
            "imageFile": {
              "type": "string",
              "title": "Image file",
              "description": "Files must be already located on the device prior to the start of this workflow.",
              "enum": [
                "vEOS64-lab-4.26.2F.swi",
                "vEOS64-lab-4.25.5.1M.swi"
              ]
            },
            "md5Checksum": {
              "type": "string",
              "title": "MD5 checksum",
              "description": "*Optional. The MD5 checksum is available from the EOS download page of the Arista website."
            },
            "zeroTouch": {
              "type": "boolean",
              "title": "Zero Touch",
              "description": "Check  “Zero Touch” to run sunny day path end to end with no manual tasks. Leave unchecked to run automation in Verbose mode to view MOP template results and all error logging.",
              "default": true,
              "enum": [
                true,
                false
              ]
            },
            "healthCheckVariables": {
              "type": "object",
              "title": "Health Check Variables",
              "description": "",
              "required": [
                "pingDelay",
                "numberOfRetries",
                "numberOfRetriesStability"
              ],
              "properties": {
                "pingDelay": {
                  "type": "number",
                  "title": "Ping Delay",
                  "description": "Number of seconds to wait before trying to establish a connection with the device after a failed ping. *Minimum required 60 seconds",
                  "minimum": 60
                },
                "numberOfRetries": {
                  "type": "number",
                  "title": "Number of Retries",
                  "description": "Maximum number of times to reattempt pings for a successful connection with the device before concluding failure.",
                  "minimum": 1
                },
                "numberOfRetriesStability": {
                  "type": "number",
                  "title": "Number of Retries Stability",
                  "description": "The number requirement for consecutive successful pings (to validate interface stability).",
                  "minimum": 1
                }
              }
            }
          }
        },
        "uiSchema": {
          "eosDevice": {
            "ui:placeholder": "Select a device"
          },
          "imageFile": {
            "ui:placeholder": "fileName.swi"
          },
          "md5Checksum": {
            "ui:placeholder": "(Optional) Enter the MD5 checksum value."
          },
          "healthCheckVariables": {
            "ui:collapseByDefault": false,
            "items": {
              "pingDelay": {
                "ui:placeholder": "Enter number of seconds (min. 60)",
                "ui:widget": "updown"
              },
              "numberOfRetries": {
                "ui:placeholder": "Enter a number",
                "ui:widget": "updown"
              },
              "numberOfRetriesStability": {
                "ui:placeholder": "Enter a number",
                "ui:widget": "updown"
              }
            }
          }
        },
        "bindingSchema": {
          "properties": {
            "eosDevice": {
              "binding:method": "POST",
              "binding:link": {
                "$ref": "/links",
                "rel": "collection"
              },
              "binding:body": {
                "options": {
                  "limit": 2000,
                  "start": 0,
                  "sort": [
                    {
                      "name": -1,
                      "address": 1,
                      "port": -1
                    }
                  ],
                  "order": "ascending"
                }
              },
              "binding:target": {
                "propertyPointer": "/enum"
              },
              "binding:hyperSchema": {
                "type": "object",
                "base": "/configuration_manager",
                "links": [
                  {
                    "rel": "collection",
                    "href": "/devices",
                    "targetMediaType": "application/json",
                    "targetSchema": {
                      "$ref": "#"
                    }
                  }
                ]
              },
              "binding:source": {
                "propertyPointer": "/list",
                "keyPointer": "/name"
              }
            },
            "healthCheckVariables": {
              "properties": {}
            }
          }
        },
        "validationSchema": {
          "healthCheckVariables": {}
        },
        "version": "2020.1"
      }
    },
    {
      "type": "template",
      "data": {
        "_id": "60e75ca81525c920f234f731",
        "name": "arista_eos_show_boot-config",
        "command": "show boot-config",
        "template": "Value VERSION (\\S+)\nValue CONSOLE (.*)\n\nStart\n  ^Software image:\\s+${VERSION}\n  ^Console speed:\\s+${CONSOLE} -> Record\n  ",
        "type": "textfsm",
        "created": "2021-07-08T20:14:32.771Z",
        "lastUpdated": "2021-07-08T20:14:32.771Z",
        "version": 1,
        "data": "Software image: flash:/EOS-2.2.0.swi\nConsole speed: (not set)\nAboot password (encrypted): $1$ap1QMbmz$DTqsFYeauuMSa7/Qxbi2l1",
        "group": "arista eos",
        "description": "Auto-imported"
      }
    },
    {
      "type": "mop-template",
      "data": {
        "tags": [],
        "name": "Arista EOS Upgrade",
        "os": "",
        "passRule": true,
        "ignoreWarnings": false,
        "commands": [
          {
            "command": "show boot-config | include Software image:",
            "passRule": true,
            "rules": [
              {
                "rule": "<!imageFile!>",
                "eval": "contains",
                "severity": "error",
                "flags": {
                  "case": true
                }
              }
            ]
          }
        ],
        "created": 1635438641656,
        "createdBy": "kay.wolfe@itential.com",
        "lastUpdated": 1637077537952,
        "lastUpdatedBy": "kay.wolfe@itential.com"
      }
    },
    {
      "type": "mop-template",
      "data": {
        "tags": [],
        "name": "Arista EOS Upgrade Preparation",
        "os": "",
        "passRule": true,
        "ignoreWarnings": true,
        "commands": [
          {
            "command": "copy running-config flash:/cfg_<!job_id!>",
            "passRule": true,
            "rules": [
              {
                "rule": "Copy completed successfully.",
                "eval": "contains",
                "severity": "warning",
                "flags": {
                  "case": true
                }
              }
            ]
          },
          {
            "command": "show startup-config | include ! boot system",
            "passRule": true,
            "rules": [
              {
                "rule": "<!imageFile!>",
                "eval": "!contains",
                "severity": "warning",
                "flags": {
                  "case": true
                }
              }
            ]
          },
          {
            "command": "show ver | include Software image version:",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "info",
                "flags": {
                  "case": true
                }
              }
            ]
          },
          {
            "command": "dir flash:/<!imageFile!>",
            "passRule": true,
            "rules": [
              {
                "rule": "No such file or directory",
                "eval": "!contains",
                "severity": "warning",
                "flags": {
                  "case": true
                }
              }
            ]
          },
          {
            "command": "verify /md5 <!imageFile!>",
            "passRule": false,
            "rules": [
              {
                "rule": "error",
                "eval": "!contains",
                "severity": "warning",
                "flags": {
                  "case": true
                }
              },
              {
                "rule": "=( <!md5!>\\b)",
                "eval": "RegEx",
                "severity": "info",
                "flags": {
                  "case": true
                }
              }
            ]
          }
        ],
        "created": 1635188019096,
        "createdBy": "kay.wolfe@itential.com",
        "lastUpdated": 1636641618558,
        "lastUpdatedBy": "kay.wolfe@itential.com"
      }
    },
    {
      "type": "mop-template",
      "data": {
        "tags": [],
        "name": "Arista EOS Upgrade Pre-Post Checks",
        "os": "",
        "passRule": true,
        "ignoreWarnings": false,
        "commands": [
          {
            "command": "show ver | include Software image version:",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error",
                "flags": {
                  "case": false
                }
              }
            ]
          },
          {
            "command": "show interfaces status",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error",
                "flags": {
                  "case": false
                }
              }
            ]
          },
          {
            "command": "show running-config",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ]
          },
          {
            "command": "show ntp status",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ]
          },
          {
            "command": "show clock",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ]
          }
        ],
        "created": 1635886305259,
        "createdBy": "kay.wolfe@itential.com",
        "lastUpdated": 1638222135357,
        "lastUpdatedBy": "kay.wolfe@itential.com"
      }
    },
    {
      "type": "mop-template",
      "data": {
        "tags": [],
        "name": "Arista EOS Upgrade Write",
        "os": "",
        "passRule": true,
        "ignoreWarnings": false,
        "commands": [
          {
            "command": "write",
            "passRule": true,
            "rules": [
              {
                "rule": "Copy completed successfully.",
                "eval": "contains",
                "severity": "error",
                "flags": {
                  "case": true
                }
              }
            ]
          }
        ],
        "created": 1637074829477,
        "createdBy": "kay.wolfe@itential.com",
        "lastUpdated": 1637077532967,
        "lastUpdatedBy": "kay.wolfe@itential.com"
      }
    },
    {
      "type": "mop-template",
      "data": {
        "tags": [],
        "name": "Arista EOS Upgrade Verify",
        "os": "",
        "passRule": true,
        "ignoreWarnings": false,
        "commands": [
          {
            "command": "show startup-config | include ! boot system",
            "passRule": true,
            "rules": [
              {
                "rule": "<!imageFile!>",
                "eval": "contains",
                "severity": "error",
                "ruleB": "",
                "evaluator": "=",
                "evaluation": "pass"
              }
            ]
          },
          {
            "command": "show ver | include Software image version:",
            "passRule": true,
            "rules": [
              {
                "rule": "",
                "eval": "contains",
                "severity": "error"
              }
            ]
          }
        ],
        "created": 1635199526132,
        "createdBy": "kay.wolfe@itential.com",
        "lastUpdated": 1636641473750,
        "lastUpdatedBy": "kay.wolfe@itential.com"
      }
    },
    {
      "type": "mop-analytic-template",
      "data": {
        "tags": [],
        "name": "Arista EOS Upgrade",
        "passRule": true,
        "prepostCommands": [
          {
            "preRawCommand": "show ver | include Software image version:",
            "postRawCommand": "show ver | include Software image version:",
            "passRule": true,
            "rules": [
              {
                "type": "!matches",
                "preRegex": "Software image version:\\s.+",
                "postRegex": "Software image version:\\s.+",
                "evaluator": "!=",
                "severity": "info",
                "preRegexNumberOfLinesMatched": 1,
                "preRegexFirstMatchGroups": [
                  "Software image version: 4.26.2F"
                ],
                "postRegexNumberOfLinesMatched": 1,
                "postRegexFirstMatchGroups": [
                  "Software image version: 4.26.2F"
                ],
                "flags": {
                  "case": false,
                  "multiline": false,
                  "global": false
                }
              }
            ],
            "preCommandResHTML": "Test a command or the template to get results here",
            "postCommandResHTML": "Test a command or the template to get results here",
            "preCommandValue": "show ver | include Software image version:",
            "postCommandValue": "show ver | include Software image version:",
            "preCommandRes": "Software image version: 4.26.2F",
            "postCommandRes": "Software image version: 4.26.2F"
          },
          {
            "preRawCommand": "show clock",
            "postRawCommand": "show clock",
            "passRule": true,
            "rules": [
              {
                "type": "!matches",
                "preRegex": "",
                "postRegex": "",
                "evaluator": "=",
                "severity": "error"
              }
            ],
            "preCommandResHTML": "Test a command or the template to get results here",
            "postCommandResHTML": "Test a command or the template to get results here"
          },
          {
            "preRawCommand": "show running-config",
            "postRawCommand": "show running-config",
            "passRule": true,
            "rules": [
              {
                "type": "!matches",
                "preRegex": "",
                "postRegex": "",
                "evaluator": "=",
                "severity": "info"
              }
            ],
            "preCommandResHTML": "Test a command or the template to get results here",
            "postCommandResHTML": "Test a command or the template to get results here"
          },
          {
            "preRawCommand": "show ntp status",
            "postRawCommand": "show ntp status",
            "passRule": true,
            "rules": [
              {
                "type": "matches",
                "preRegex": "",
                "postRegex": "",
                "evaluator": "=",
                "severity": "error"
              }
            ],
            "preCommandResHTML": "Test a command or the template to get results here",
            "postCommandResHTML": "Test a command or the template to get results here"
          }
        ],
        "created": 1634222635697,
        "createdBy": "kay.wolfe@itential.com",
        "lastUpdated": 1641860806916,
        "lastUpdatedBy": "kay.wolfe@itential.com"
      }
    },
    {
      "type": "transformation",
      "data": {
        "_id": "616db0c8b5b2e525505be400",
        "name": "Arista_EOS_Upgrade_JST",
        "description": "",
        "incoming": [
          {
            "$id": "formData",
            "type": "object",
            "properties": {
              "zeroTouch": {
                "type": "boolean",
                "examples": [
                  true,
                  false
                ]
              },
              "healthCheckVariables": {
                "type": "object",
                "properties": {
                  "numberOfRetries": {
                    "type": "integer",
                    "examples": [
                      9
                    ]
                  },
                  "pingDelay": {
                    "type": "integer",
                    "examples": [
                      90
                    ]
                  },
                  "numberOfRetriesStability": {
                    "type": "integer",
                    "examples": [
                      9
                    ]
                  }
                },
                "required": [
                  "numberOfRetriesStability",
                  "pingDelay",
                  "numberOfRetries"
                ]
              },
              "eosDevice": {
                "type": "string",
                "examples": [
                  "kay_dsup1063-1634912322000"
                ]
              },
              "imageFile": {
                "type": "string",
                "examples": [
                  "vEOS64-lab-4%2E26%2E2F%2Eswi"
                ]
              },
              "md5Checksum": {
                "type": "string",
                "examples": [
                  "f1bea7e3a8aae11a0fafd485028c16e1"
                ]
              }
            },
            "required": [
              "healthCheckVariables",
              "zeroTouch",
              "eosDevice",
              "imageFile"
            ]
          }
        ],
        "outgoing": [
          {
            "$id": "zeroTouchMode",
            "type": "string"
          },
          {
            "$id": "numberOfRetries",
            "type": "string"
          },
          {
            "$id": "pingDelay",
            "type": "string"
          },
          {
            "$id": "numberOfRetriesStability",
            "type": "string"
          },
          {
            "$id": "deviceName",
            "type": "string"
          },
          {
            "$id": "arrayedDevice",
            "type": "array",
            "items": {
              "type": "string",
              "examples": [
                "Kay"
              ]
            }
          },
          {
            "$id": "imageFile",
            "type": "string"
          },
          {
            "$id": "md5",
            "type": "string"
          }
        ],
        "steps": [
          {
            "id": 6,
            "type": "declaration",
            "library": "Array",
            "method": "new Array",
            "args": [
              null
            ],
            "view": {
              "row": 4,
              "col": 1
            },
            "polymorphIndex": 0,
            "summary": "turns device string into array for command task"
          },
          {
            "id": 7,
            "type": "assign",
            "from": {
              "location": "declaration",
              "name": 6,
              "ptr": "/return"
            },
            "to": {
              "location": "outgoing",
              "name": "arrayedDevice",
              "ptr": ""
            }
          },
          {
            "id": 9,
            "type": "assign",
            "from": {
              "location": "incoming",
              "name": "formData",
              "ptr": "/eosDevice"
            },
            "to": {
              "location": "outgoing",
              "name": "deviceName",
              "ptr": ""
            }
          },
          {
            "id": 11,
            "type": "assign",
            "from": {
              "location": "incoming",
              "name": "formData",
              "ptr": "/imageFile"
            },
            "to": {
              "location": "outgoing",
              "name": "imageFile",
              "ptr": ""
            }
          },
          {
            "id": 13,
            "type": "assign",
            "from": {
              "location": "incoming",
              "name": "formData",
              "ptr": "/eosDevice"
            },
            "to": {
              "location": "declaration",
              "name": 6,
              "ptr": "/args/0/value"
            }
          },
          {
            "id": 14,
            "type": "method",
            "library": "Boolean",
            "method": "toString",
            "args": [
              null
            ],
            "view": {
              "row": 1,
              "col": 4
            }
          },
          {
            "id": 15,
            "type": "assign",
            "from": {
              "location": "incoming",
              "name": "formData",
              "ptr": "/zeroTouch"
            },
            "to": {
              "location": "method",
              "name": 14,
              "ptr": "/args/0/value"
            }
          },
          {
            "id": 16,
            "type": "assign",
            "from": {
              "location": "method",
              "name": 14,
              "ptr": "/return"
            },
            "to": {
              "location": "outgoing",
              "name": "zeroTouchMode",
              "ptr": ""
            }
          },
          {
            "id": 17,
            "type": "method",
            "library": "Number",
            "method": "toString",
            "args": [
              null,
              null
            ],
            "view": {
              "row": 1,
              "col": 1
            }
          },
          {
            "id": 18,
            "type": "assign",
            "from": {
              "location": "incoming",
              "name": "formData",
              "ptr": "/healthCheckVariables/numberOfRetries"
            },
            "to": {
              "location": "method",
              "name": 17,
              "ptr": "/args/0/value"
            }
          },
          {
            "id": 19,
            "type": "assign",
            "from": {
              "location": "method",
              "name": 17,
              "ptr": "/return"
            },
            "to": {
              "location": "outgoing",
              "name": "numberOfRetries",
              "ptr": ""
            }
          },
          {
            "id": 20,
            "type": "method",
            "library": "Number",
            "method": "toString",
            "args": [
              null,
              null
            ],
            "view": {
              "row": 2,
              "col": 1
            }
          },
          {
            "id": 21,
            "type": "assign",
            "from": {
              "location": "incoming",
              "name": "formData",
              "ptr": "/healthCheckVariables/pingDelay"
            },
            "to": {
              "location": "method",
              "name": 20,
              "ptr": "/args/0/value"
            }
          },
          {
            "id": 22,
            "type": "assign",
            "from": {
              "location": "method",
              "name": 20,
              "ptr": "/return"
            },
            "to": {
              "location": "outgoing",
              "name": "pingDelay",
              "ptr": ""
            }
          },
          {
            "id": 23,
            "type": "method",
            "library": "Number",
            "method": "toString",
            "args": [
              null,
              null
            ],
            "view": {
              "row": 3,
              "col": 1
            }
          },
          {
            "id": 24,
            "type": "assign",
            "from": {
              "location": "incoming",
              "name": "formData",
              "ptr": "/healthCheckVariables/numberOfRetriesStability"
            },
            "to": {
              "location": "method",
              "name": 23,
              "ptr": "/args/0/value"
            }
          },
          {
            "id": 25,
            "type": "assign",
            "from": {
              "location": "method",
              "name": 23,
              "ptr": "/return"
            },
            "to": {
              "location": "outgoing",
              "name": "numberOfRetriesStability",
              "ptr": ""
            }
          },
          {
            "id": 27,
            "type": "method",
            "library": "Object",
            "method": "optional chaining",
            "args": [
              null,
              "md5Checksum"
            ],
            "view": {
              "row": 3,
              "col": 2
            }
          },
          {
            "id": 28,
            "type": "assign",
            "from": {
              "location": "method",
              "name": 27,
              "ptr": "/return"
            },
            "to": {
              "location": "outgoing",
              "name": "md5",
              "ptr": ""
            }
          },
          {
            "id": 29,
            "type": "assign",
            "from": {
              "location": "incoming",
              "name": "formData",
              "ptr": ""
            },
            "to": {
              "location": "method",
              "name": 27,
              "ptr": "/args/0/value"
            }
          }
        ],
        "functions": [],
        "comments": [],
        "view": {
          "col": 4,
          "row": 6
        },
        "created": "2021-10-18T17:37:12.621Z",
        "createdBy": {
          "_id": "6159ec0261e36e1c85ec2353",
          "provenance": "Itential-Okta",
          "username": "kay.wolfe@itential.com"
        },
        "lastUpdated": "2022-01-10T19:13:30.008Z",
        "lastUpdatedBy": {
          "_id": "6159ec0261e36e1c85ec2353",
          "provenance": "Itential-Okta",
          "username": "kay.wolfe@itential.com"
        },
        "version": "3.17.7-2021.1.7",
        "tags": []
      }
    },
    {
      "type": "transformation",
      "data": {
        "_id": "6037fc47058d4a65713f3868",
        "name": "incrementNumber",
        "description": "",
        "incoming": [
          {
            "$id": "tally",
            "type": "number",
            "examples": [
              3
            ]
          }
        ],
        "outgoing": [
          {
            "$id": "tally",
            "type": "number",
            "examples": [
              5
            ]
          }
        ],
        "steps": [
          {
            "id": 2,
            "type": "assign",
            "from": {
              "location": "incoming",
              "name": "tally",
              "ptr": ""
            },
            "to": {
              "location": "method",
              "name": 1,
              "ptr": "/args/0/value"
            }
          },
          {
            "id": 1,
            "type": "method",
            "library": "Math",
            "method": "add",
            "args": [
              null,
              1
            ],
            "view": {
              "row": 1,
              "col": 1
            }
          },
          {
            "id": 3,
            "type": "assign",
            "from": {
              "location": "method",
              "name": 1,
              "ptr": "/return"
            },
            "to": {
              "location": "outgoing",
              "name": "tally",
              "ptr": ""
            }
          }
        ],
        "functions": [],
        "comments": [],
        "view": {
          "col": 1,
          "row": 4
        },
        "created": "2021-02-25T19:36:39.460Z",
        "createdBy": {
          "_id": "60e87034b8200e0d4531e490",
          "provenance": "Local AAA",
          "username": "admin@pronghorn"
        },
        "lastUpdated": "2021-10-14T17:30:02.835Z",
        "lastUpdatedBy": {
          "_id": "60e75d06a3e406207aa71850",
          "provenance": "Itential-Okta",
          "username": "zack.strulovitch@itential.com"
        },
        "version": "3.13.0",
        "tags": []
      }
    }
  ],
  "readme": "<!-- This is a comment in md (Markdown) format, it will not be visible to the end user -->\n## _Deprecation Notice_\nThis Pre-Built has been deprecated as of 01-15-2024 and will be end of life on 01-15-2025. The capabilities of this Pre-Built have been replaced by the [Arista - EOS - IAG](https://gitlab.com/itentialopensource/pre-built-automations/arista-eos-iag)\n\n<!-- Update the below line with your Pre-Built name -->\n# Arista EOS Upgrade IAG\n\n<!-- Leave TOC intact unless you've added or removed headers -->\n## Table of Contents\n\n* [Overview](#overview)\n* [Installation Prerequisites](#installation-prerequisites)\n* [Requirements](#requirements)\n* [Features](#features)\n* [Future Enhancements](#future-enhancements)\n* [How to Install](#how-to-install)\n* [How to Run](#how-to-run)\n* [Additional Information](#additional-information)\n\n## Overview\n\n<!-- Write a few sentences about the Pre-Built and explain the use case(s) -->The Arista EOS Upgrade IAG Pre-built enables Network Engineers to save hours of manual CLI entry with an automation that executes the standard procedure to upgrade or downgrade network switches. This Pre-built contains the Arista EOS Upgrade - IAG workflow using IAP. It is supported by the Device Connection Health Check and Command Template Runner workflows. \nThe Arista EOS Upgrade - IAG workflow requires that the desired binary *.swi image file is already downloaded locally on the destination device's bootflash. The file integrity can be verified at the terminal using md5 before launching this Pre-built or selected as an optional verification step within the Arista EOS Upgrade input form (operator must input expected checksum, available from Arista EOS download page). \nAt the end of the workflow, the user will be presented with a comprehensive report that lists the pre/post-checks differences.\nThis solution is a programmtic execution of the procdure described on Arista's website [here](https://www.arista.com/en/um-eos/eos-standard-upgrades-and-downgrades#modify_boot_config_for_single_supervisor_switch) and consists of the following:\n<details><summary>Click to expand</summary>\n\n* Main - Workflow (Arista EOS Upgrade - IAG)\n* Performs device prechecks. \n* Verifies device is on a different version than the requested one. \n* Verifies the desired file is present in device flash directory.\n* Optional verification of file integrity using md5 checksum.\n* Performs device commands.\n\t* Backup the running-config locally on flash drive dynamically naming it by job_ID.\n\t* Saves interfaces status to job runtime log.\n\t* Performs command to update the boot-config file to point to the new EOS image.\n\t* Performs the write command to direct the switch to load the newer image version upon the next reboot.\n\t* Issues the reload command to the device.\n* Waits for device to become available after reboot.\n* Confirms reliable connectivity via ping consistency with the *Device Health Checks* child workflow.\n* Performs postchecks to verify the device functionality running the new version.\n* Saves the new running-configurations to job runtime log and locally on flash drive dynamically name if by job_ID.\n* Shows a Pre-Post-Checks difference report.\n* Performs a back-out, if requested and returns the Start-Up Boot-Config file to the precheck state.\n* Error handling to Terminate —> Retry or Skip —> Retry\n\t\t\n- Command Template Runner child jobs will run the commands against the switch for:\t\n\t* Prechecks\n\t* Preparation\n\t* Upgrade\n\t* Write\n\t* Verification \t\n\t* Reload\n\t* Postchecks\t\t\n\t\n- Operations Manager Automation with a JSON-Form:\t\n\t* Select Zero-Touch (unselected runs automation in verbose mode automatically).\n\t* Requires user to select the destination device to run the automation against.\n\t* Requires user to select software version to point the boot-configuration to (file names are hard coded in JSON form).\n\t* Allows user the option to include, or not, an md5 checksum integrity validation of the image file.\n\t* Requires user to select Ping delay, Ping retries, and Ping consistency variables for the Device Health Check child job.\n</details>\n<!-- Avoid using the word Artifact. Please use Pre-Built, Pre-Built Transformation or Pre-Built Automation -->\n<!-- Ex.: The Migration Wizard enables IAP users to conveniently move their automation use cases between different IAP environments -->\n<!-- (e.g. from Dev to Pre-Production or from Lab to Production). -->\n\n<!-- ADD ESTIMATED RUN TIME HERE -->\n<!-- e.g. Estimated Run Time: 34 min. -->\n_Estimated Run Time_: 5 m 34s\n\n## Installation Prerequisites\nUsers must satisfy the following pre-requisites:\n\n<!-- Include any other required apps or adapters in this list -->\n<!-- Ex.: EC2 Adapter -->\n* Itential Automation Platform\n  * `^2023.1`\n\n## Requirements\n\nThis Pre-built requires the following:\n* Arista EOS Single-Supervisor Switch (not compatible with switches participating in an MLAG)\n* Itential Automation Gateway (IAG)\n\n<!-- Unordered list highlighting the requirements of the Pre-Built -->\n<!-- EXAMPLE -->\n<!-- * cisco ios device -->\n<!-- * Ansible or NSO (with F5 NED) * -->\n\n## Features\n\nThe main benefits and features of the Pre-Built are outlined below.\n\n<!-- Unordered list highlighting the most exciting features of the Pre-Built -->\n<!-- EXAMPLE -->\n* Saves hours of manual CLI entry.\n* Best use case is when accelerated upgrade is not an option, like software downgrades.\n* This automation follows a procedure that will minimize packet loss.\n* Automatically checks if device is compatible with workflow.\n* Optional verification of file integrity using md5 checksum.\n* Verifies file presence on switch.\n* Uses dynamic naming conventions for backup running-config files\n* Verbose mode asks for operator confirmation prior to pushing config changes to the device.\n* Allows operator to backout of changes and return device boot-config to precheck state.\n* Error handling allows retry or skip.\n\n<!-- * Automatically checks for device type -->\n<!-- * Displays dry-run to user (asking for confirmation) prior to pushing config to the device -->\n<!-- * Verifies downloaded file integrity (using md5), will try to download again if failed -->\n\n\n## Future Enhancements\n\n<!-- OPTIONAL - Mention if the Pre-Built will be enhanced with additional features on the road map -->\n<!-- Ex.: This Pre-Built would support Cisco XR and F5 devices -->\n* Future enhancements would support dual-supervisor switches and NSO managed devices.\n\n\n## How to Install\n\nTo install the Pre-built:\n\n* Verify you are running a supported version of the Itential Automation Platform (IAP) as listed above in the [Requirements](#requirements) section in order to install the Pre-built. \n* The Pre-built can be installed from within App-Admin_Essential. Simply search for the name of your desired Pre-built and click the install button.\n\n<!-- OPTIONAL - Explain if external components are required outside of IAP -->\n<!-- Ex.: The Ansible roles required for this Pre-built can be found in the repository located at https://gitlab.com/itentialopensource/pre-built-automations/hello-world -->\n\n## How to Run\n\nUse the following to run the Pre-built:\n\n* The main entry point for this Pre-built is Operations Manager.\n\n## Additional Information\n\nPlease use your Itential Customer Success account if you need support when using this Pre-Built.\n"
}