Flash Probe

Network Intent

Triggered Automation

Recommended Automation

Data View Template

Golden Baseline

Schedule CLI Tasks

Scheduled Task

Runbook Template

Flash Probe

Action 

Create

omultiple flash probes for device

osupport compound variable

osupport reference variable of the feature as parser parameter

osupport reference GB dynamic rule

Trigger

otrigger flash probe of the same device

YAML Sample 

flash_probes: # Definition for generating Flash Probe.

 - name: BGP_Flapping#{ $ip1 }

   display_name: BGP_Flapping#{ $ip1 } # display name, optional

   description: xxxx

   target_type: Interface # Device or Interface

   target_interface: $intfName # target interface name, valid for target_type=Interface, null means all interfaces

   qulification: | # qulification to filter the Device/Interface

     $device.subTypeName=="Cisco Router" && $intf.name!="e0" && $intf.xxx=="xx"

   conflict_mode: Skip # support values: Override and Skip, the default value is Skip

   type: Primary # Primary or Secondary or External

   trigger_type: AlertBased # AlertBased or TimerBased, AlertBased is the default value, valid for type=Primary

   alert_source: ServiceNow # valid for type=External, such as ServiceNow...

   frequency_multiple: 16 # multiple of the period of the base frequency valid for target_type=Device&&type=Primary&&trigger_type=TimerBased

   variable_defines: # the variables that may be used in rule or alert_message, valid for type=Primary|Secondary&&trigger_type=AlertBased

     - parser: "Built-in Files/CLI Command/Cisco IOS/Ping [Cisco IOS]"

       parameters:

         vrf: $xx

         ip: $ip1

       variables: # the variables that want to use in rule or alert_message

         - name: status # variable full name

           alias: status # alias that is actually used when referenced in Rule and alert_Message, same as 'name' if alias have no value

           monitor: # fill in this flag to indicate that this variable needs to be monitored

             display_name: xxx_status # display name which show up on the map data view.

             unit: xxx_status # unit which show up on the map data view.

     - parser: "Built-in Files/CLI Command/Cisco IOS/Interface xxx"

       variables:

         - name: intf.status

           alias: intfStatus

     - compound_variable: xxx1

       expression: $status

     - compound_variable: xxx2

       expression: $status+3

   rule: # valid for type=Primary|Secondary&&trigger_type=AlertBased

     loop_table_rows: false

     conditions:

       - operand1: $status

         operator: NotEqual # 1. UseGB, 2...

         operand2: "Success"

       - operand1: $status

         operator: NotEqual

         operand2: $status[last]

     boolean_expression: A or B

   alert_message: have bgp flapping alert $status # alert meessage, support variables, valid for type=Primary|Secondary&&trigger_type=AlertBased

   triggered_by: # flash probe list that triggered by, valid for type=Secondary&&trigger_type=AlertBased

     - name: FlashProbe1 # flash probe name, device level, same device&interface

       target_type: Device # Device or SameLevel, SameLevel is the default value

   enable: true # whether to enable

   send_email: # send email when alert occurs.

     enable: true

     emails:

       - [email protected]

       - [email protected]; [email protected]

     trigger_event_template: New Template # optional, name of event template that will trigger when send email

   enable: true # whether to enable, the default is true

Properties

Property Name

Type

Required

Definition

name

string

Y

Flash name

display_name

string

N

It shows in IE Probe Flash UI. The default is the same with the name parameter.

description

string

N

The flash probe description

target_type

enum

N

There are 2 target types:

Device(default)

Interface

target_interface

string

N

If the target type is Interface, this parameter is available. It also references the feature variable as the value, such as $IntfName.

qualification

string

N

The qualification of the flash probe. It can use the GDR variable or feature variable as a condition, such as :$device.subTypeName=="Cisco Router" && $intf.name!="e0" && $intf.xxx=="xx"

It supports device GDR attribute and physical interface GDR attribute.

See Qualification Properties and Condition

conflict_mode

string

N

Override or Skip(default)

type

string

N

Primary(default), Secondary and External are supported.

trigger_type

string

N

This parameter is valid if the type parameter is Primary. It supports AlertBased (default)and TimerBased.

alert_source

string

N

This parameter is valid if the type parameter is External, such as 'ServiceNow'.

frequency_multiple

int

Y

Multiple of the period of the base frequency.

It is valid for target_type=Device&&type=Primary&&trigger_type=TimerBased

variables_defines

object

N

It may be used in rule or alert_message. It is valid for type=Primary|Secondary&&trigger_type=AlertBased.

variables_defines.parser

list

N

Parser path

variable_defines.parameters.{var1}

string

N

The parser parameter variable,and {var1} is the variable name.

variable_defines.variables

object

N

The variables to be used in rule or alert_message

variable_defines.variables.name

string

N

The variable of the parser full name

variable_defines.variables.alias

string

N

The alias actually used when referenced in rule and alert_Message, same as 'name' if alias has no value.

variable_defines.varaibles.monitor

object

N

It indicates that this variable needs to be monitored.

variable_defines.varaibles.monitor.display_name

string

N

Display the name which shows up on the map data view.

variable_defines.varaibles.monitor.unit

string

N

As a variable unit and shows up on the map data view.

variable_defines.compound_variable

object

N

The compound variable name, and defining multiple compound variables is supported.

variable_defines.compound_variable.expression

string

N

Define the compound variable expression such as $var > 0 and $var2 !=None.

rule

object

N

Define rule for the flash probe . It is valid for type=Primary|Secondary&&trigger_type=AlertBased

rule.loop_table_rows

bool

N

The default is true.

It will be set as true if the variable is the table.

rule.conditions

object

N

The rule condition

rule.conditions.operand1

string

N


rule.conditions.operator

object

N

The rule condition operator expression, such as Equal, Not Equal.

It supports dynamic GB rule as well.

rule.conditions.operand2

string

N


rule.conditions.boolean_expression

string

N

The rule bool expression

alert_message

string

N

The alert message, which supports variable input such as $status.

It is valid for type=Primary|Secondary&&trigger_type=AlertBased.

triggered_by

object

N

The triggered flash probe list  

It is valid for type=Secondary&&trigger_type=AlertBased.

triggered_by.name

string

N

The triggered flash probe name

triggered_by.target_type

string

N

Device#Device or SameLevel(default)

enable

bool

N

Whether to enable the flash probe being created or not

The default is true.

send_mail

object

N

Setting email content for flash probe.

send_mail.enable

bool

N

The default is true when there is the send_email tag and at least one valid email address is filled in.

emails

list

N

The email address list

trigger_event_template

string

N

The name of the event template to be triggered when sending an email .

Network Intent

Action 

Create

ocreate a NI by feature decode

ocreate a default NI if do not have NI template

Trigger

oTriggered Automation

oRecommended Automation

YAML Sample 

network_intents: # Definition for generating NI.

 path: All Network Intents/General_BGP_{$crossRelationHash} # the path to generate NI, here can use variables of FIG level

 conflict_mode: Skip # support values: Override and Skip, the default is Skip

 lock_after_created: true # the default is false

 create_default_NI: true # Whether to create Default NI for the FIG, the default is false.

 cli_baseline_update_type: LatestFromDE # support values: LatestFromDE(Relative to the time of running FID), LiveFromNextRun, the default is LatestFromDE.

 ni_template: "./NI_template1.ni" # Relative path of the NI Template file, NI will be generated from the NITemplate when create_default_NI=false.

 ni_inputs:

   devices:

     R1:

       # repeat: false # Whether to generate the Device in NI for all Device of FIG replication that meets the criteria, the default is false.

       device_condition: order('$bgp')==1 # FIG Device to NI Device Mapping condition.

       # If repeat=true and there are multiple devices that meet this condition, the NI Device will be copied to generate.

       parameters:

         intf: $intfName1

         ip: $ip1

         # here can use variables and functions of device level

         # line pattern variables and GDR variables are available here

         # line pattern variable write like this: $bgp, without a prefix.

         # GDR variable write like this, $device.subType, with prefix $device.

     R2:

       device_condition: order('$bgp')==2

       parameters:

         intf: $intfName1

         ip: $ip1

Properties

Property Name

Type

Required

Definition

path

string

Y

The path to generate the Network Intent.

Only use the crossRelationHash variable here.

conflict_mode

string

N

Skip(default) or Override

Verify if the asset being created already existed.

create_default_NI

bool

N

Whether to create the Default Network Intent for the FIG.

 The default value is false.

The parameter is valid if the the Network Intent template does not exist or None

lock_after_created

bool

N

Lock the created Network Intent.

The default value is false.

cli_baseline_update_type

string

N

LatestFromDE(compared to the time of running FID) or LiveFromNextRun,

The default value is LatestFromDE.

ni_template

string

N

The relative path of the Network Intent Template file.

The NI will be generated from the Network Intent Template when create_default_NI=false.

ni_inputs

object

N

Devices included in the Network Intent.

ni_inputs.devices.R1

string

N

Satisfy R1 condition.

ni_inputs.devices.R1.device_condition

string

N

FIG Device to NI Device Mapping condition.

ni_inputs.devices.R1.parameter

string

N


Triggered Automation

Action 

Install Triggered Automation

oCreate trigger automation asset:

The Network Intent

The Flash Probe

YAML Sample

triggered_automation:

 - description: xxxx

   automation:

     network_intents:

       - Public NIs/BGP/General HSRP

     auto_append_created_NI: true # Whether to automatically add the created NI by this FID

   triggered_by_flash_probes: # flash probe list that triggered by

     - name: FlashProbe1 # flash probe name

       qualification: | # qulification to filter the Device/Interface

         $device.subTypeName=="Cisco Router" && $intf.name!="e0" && $intf.xxx=="xx"

       note_on_decision_tree: Check bgp # note on decision tree

       playbooks: [BGP, HSRP] # note on decision tree

       trigger_rule:

         run_type: Once # Once or Continuously

         frequency: # run frequency for Continuously

           interval: 20

           times: 3

         suppression:

           enable: true

           wont_run_twice_within: 15

   conflict_mode: Skip # support values: Override and Skip, the default value is Skip

Properties

Property Name

Type

Required

Definition

description

string

N

The triggered automation description

automation

object

Y

Include the NI definition.

Supports to reference current YAML created NI.

automation.network_intents

list

Y

References the NI path.

Supports multiple NIs.

auto_append_created_NI.auto_append_created_NI

bool

N

Whether to automatically add the created NI by this FID

The default is true.

triggered_by_flash_probes

list object

Y

The triggered Flash Probe list.

triggered_by_flash_probes.name

string

Y

The Flash probe name

triggered_by_flash_probes.qualification

string

N

The qualification can use the GDR variable or feature variable as a condition, such as :$device.subTypeName=="Cisco Router" && $intf.name!="e0" && $intf.xxx=="xx"

It supports device GDR attribute and physical interface GDR attribute.

triggered_by_flash_probes.note_on_decision_tree

string

N

A note displayed on decision tree

triggered_by_flash_probes.playbook_tags

list

N

The playbook tags for decision tree, such as [BGP,]

triggered_by_flash_probes.trigger_rule

object

Y

The Trigger rule definition

triggered_by_flash_probes.trigger_rule.run_type

string

Y

Once or Continuously

triggered_by_flash_probes.trigger_rule.frequency

object

Y

The run frequency for Continuously

triggered_by_flash_probes.trigger_rule.frequency.interval

int

Y

The unit is minute.

triggered_by_flash_probes.trigger_rule.frequency.times

int

Y

Repeat run times.

triggered_by_flash_probes.trigger_rule.suppression

object

N

The unit is minute.

triggered_by_flash_probes.trigger_rule.suppression.enable

bool

N


triggered_by_flash_probes.trigger_rule.suppression.wont_run_twice_within

string

N


conflict_mode

string

N

To verify if the triggered automation has a conflict.  

Override or Skip (default)

enable

bool

N

Boolean value:

true (default) or false

send_mail

object

N

Setting email content.

send_mail.enable

bool

N

The default is true when there is the send_email tag and at least one valid email address is filled in.

emails

list

N

The email address list

trigger_event_template

string

N

The name of the event template to be triggered when an email is sent.

Recommended Automation

Action

Install Recommended Automation

oInstall recommended automation asset: 

Network Intent

Runbook Template

CLI Command

YAML Sample

recommended_automation: # support NI,DVT,RBT,Qapp and CLI

 - description: xxx

   automation:

     network_intents:

       - "Public NIs/BGP/General HSRP"

     runbook_templates:

       - "Built-in RBTs/BGP/General HSRP"

     commands:

       - "show version"

     auto_append_created_NI: true # Whether to automatically add the created NI by this FID

     auto_append_created_RBT: true # Whether to automatically add the created RBT by this FID

     auto_append_feature_commands: true

   recommended_by_flash_probes: # flash probe list that triggered by

     - name: BGP_Flapping#{ $ip1 } # flash probe name

       alert_type: NetBrain # NetBrain or External.

       

   

       qulification: | # qulification to filter the Device/Interface

         $device.subTypeName=="Cisco Router" && $intf.name!="e0" && $intf.xxx=="xx"

       note_on_decision_tree: Check bgp # note on decision tree

       playbooks: [BGP, HSRP] # note on decision tre

 

   recommended_by_hypotheses:

     - name: BGP_Flapping

       qualification: $device.subType=1024 && $xxx!=null

       note_on_decision_tree: Check bgp # note on decision tree

       playbooks: [BGP, HSRP] # note on decision tree

   conflict_mode: Skip # support values: Override and Skip, the default value is Skip

Properties

Property Name

Type

Required

Definition

automation

object

Y

Recommend automation object .

It includes NI, DVT, Qapp, Runbook Template, and CLI Command.

description

string

N


automation.network_intents

list

N

Add the NI path.

It  supports multiple NI

automation.runbook_templates

list

N

Add the Runbook Template path.

It supports multiple Runbook Template.

automation.commands

list

N

Add the CLI command.

It supports multiple CLI commands.

automation.auto_append_created_NI

bool

N

Whether to automatically add the created NI by this FID

The default is false.

automation.auto_append_created_RBT

bool

N

Whether to automatically add the created RBT by this FID

The default is false.

automation.auto_append_feature_commands

bool

N

Append the feature CLI command.

The default is false.

recommended_by_flash_probes

list

N

The triggered Flash Probe list.

recommended_by_flash_probes.name

string

N

The Flash probe name can contain variables.

recommended_by_flash_probes.alert_type

string

N

NetBrain or External

recommended_by_flash_probes.qulification

string

N

The qualification

It can use the GDR variable or feature variable as a condition, such as :$device.subTypeName=="Cisco Router" && $intf.name!="e0" && $intf.xxx=="xx"

It supports device GDR attribute and physical interface GDR attribute.

recommended_by_flash_probes.note_on_decision_tree

string

N

A note displayed on decision tree

recommended_by_flash_probes.playbooks

list

N

The playbook tags are for decision tree, such as [BGP,].

recommended_by_devices

list

N

The recommend target devices

recommended_by_devices.qualification

string

N

The qualification can use the GDR variable or feature variable as a condition, such as :$device.subTypeName=="Cisco Router" && $intf.name!="e0" && $intf.xxx=="xx"

It supports device GDR attribute and physical interface GDR attribute.

recommended_by_devices.note_on_decision_tree

string

N

A note displayed on decision tree

recommended_by_devices.playbooks

list

N

The playbook tags are for decision tree, such as [BGP,].

recommended_by_hypotheses

string

N

Create the hypotheses property.

recommended_by_hypotheses.qualification

object

N


recommended_by_hypotheses.note_on_decision_tree

string

N


recommended_by_hypotheses.playbooks

list

N


conflict_mode

string

N

Verify if the recommended automation has a conflict.

Support values: Override or  Skip(default)

enable

bool

N

Boolean value:

true(default) or false

Data View Template

Action 

Create

oCreate a Data View Template.

Schedule

oScheduled a Data View Template.

Install Recommended Automation

oRecommend Automation of installing Data View Template.

YAML Sample

dataview_templates: # DVTs that need to create

 - path: ">>Data View Templates>Public Data View Templates>xxxx"

   drill_down_actions: # dvt level drill down action

     - name: Basic Commands

       type: CLI # support types: CLI, RunbookTemplate

       commands: # cli commands

         - "show verson"

         - "show standby"

       description: xxxx

     - name: Multicast Source Tree Health Check

       type: RunbookTemplate # support types: CLI, RunbookTemplate

       path: "Built-in Runbook Templates/Troubleshooting/Multicast Source Tree Health Check" # runbook template path

       description: xxxx

   filter_criteria:

     device_types:

       - Cisco IOS Switch

       - Cisco Router

     feature_names: #FID  name

       - xxxx

   device_positions:

     - parser: "Built-in Files/CLI Command/Cisco IOS/Version [Cisco IOS]"

       variable: cpu

     - parser: "Built-in Files/CLI Command/Cisco IOS/Interface [Cisco IOS]"

       variable: intfs_table

       index: 5 # the dataview position index, if not set, the positions are set in array order by default.

   interface_positions:

     - interface_type: IPv4 Interface

       positions:

         - parser: "Built-in Files/CLI Command/Cisco IOS/Interface [Cisco IOS]"

           variable: intfs_table.status

           index: 5

Properties

Property Name

Type

Required

Definition

path

string

Y

The Data View Template full path

node_type

enum

N

In current version, node_type only supports Legacy.

In the future, we will consider more node type:

Fabric Node.

EPG

Bridge Domain

VRF

L2Out

L3Out

Contract

Cluster Virtual Standard Switch

Virtual Standard Switch

Vmware Distributed Virtual Switch

etc.

drill_down_actions

object

N


In current version, we only support :

Execute CLI Commands.

Runbook Template.

drill_down_actions.commands

list - string

N

Show commands.

drill_down_actions.runbook_templates

list - string

N

The Runbook template full path.

filter_criteria

object

N

Filter Criteria, see https://www.netbraintech.com/docs/ie80/help/index.html?advanced-search.htm#dynamic-search

filter_criteria.device_types

list - string

N

Device Type name list:

Cisco IOS Switch

Cisco Router

For all device types, please see Device Type Name

filter_criteria.feature_names

string

N

Match with GDR property: "_nb_features"

device_positions

object

N


device_positions.parser

string

N

The parser path

device_positions.variable

string

N

The variable name

device_positions.index

enum

N

The data view position: 0, 1, 2 or 3, ...19.

interface_positions

object

N


interface_positions.interface_type

enum

N

IPv4 Interface

Interface

IPv6 Interface

IPsec VPN Interface

GRE VPN Interface

interface_positions.positions

object

N


interface_positions.positions.parser

string

N

The parser path

interface_positions.positions.variable

string

N

The variable name

interface_positions.positions.index

enum

N

The data view position: 0, 1, 2 or 3, ...23.

Golden Baseline

Action 

Create

oCreate Golden Baseline, Define a Golden Baseline Template. When running YAML, the matched device or interface will be automatically instanced. Note that all GB rules defined here are Auto and do not support Manual Rule in current version.

YAML Sample

golden_baselines:

 - parser: Built-in Files/Network Vendors/Cisco/Cisco IOS/show standby [Cisco IOS]

   variable: intfs.state

   enable_dynamic: true

 - parser: Built-in Files/Network Vendors/Cisco/Cisco Nexus/show hsrp [Cisco Nexus Switch]

   variable: intfs.priority

   enable_dynamic: true

Properties

Property Name

Type

Required

Definition

parser

string

Y

The parser path

variable

string

Y

The variable name

enable_dynamic

bool

N

Boolean value:

true(default) or false

Schedule CLI Tasks

Action 

Schedule

oScheduled CLI command in the backend.

YAML Sample

schedule_cli_tasks: # create Schedule CLI Task

 - command: show interface {$ip1}

   frequency_type: Low # Heigh or Medium or Low

   description: FID-General HSRP-Schedule CLI

   playbook_tags: [BGP, HSRP] # note on decision tree

   enable: true # whether to enable, true is default value

   conflict_mode: Skip # support values: Override and Skip, the default value is Skip

Properties

Property Name

Type

Required

Definition

command

string

Y

Show the  command.

frequency_type

enum

N

High, Medium or Low(default)

description

string

N

Describe the scheduled command.

playbook_tags

list-string

N

The Playbook tags

enable

bool

N

Boolean value:

true(default) or false

conflict_mode

enum

N

Override or Skip(default)

Scheduled Task

Action 

Schedule

oScheduled  Parser or data view template task.

YAML Sample

schedule_tasks: # create Schedule Task

 - name: FID-General HSRP-Schedule Task

   auto_append_created_DVT: true # Whether to automatically add the created DVT by this FID

   dataview_templates: # the DVTs that need to install by schdule task

     - ">>Data View Templates>Built-in Data View Templates>Cisco ACI>Fabric Health and Faults [Cisco ACI]"

     - ">>Data View Templates>Built-in Data View Templates>GeneralHSRP"

   parsers: # the parsers that need to install by schdule task

     - "Built-in Files/Configuration/Cisco IOS/EIGRP Configuration [Cisco IOS]"

   frequency:

     type: Daily # support values: Hourly, Daily and Weekly.

     time: 20:58:25

     day_of_week: Monday # support values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday, valid when type=Weekly.

     timezone: Eastern Standard Time # see time zone: https://www.timeanddate.com/time/zones/

Properties

Property Name

Type

Required

Definition

name

string

Y

The schedule task name

auto_append_created_DVT

bool

N

Boolean value:

true or false(default)

dataview_templates

list

N

The list of Data View Templates

parsers

list

N

The list of parsers

frequency

object

Y


frequency.type        

enum

Y

It supports values: Hourly, Daily, and Weekly.

frequency.time

string

Y

An example: 20:58:25

frequency.day_of_week

enum

Y

It is valid when the type is 'Weekly'.

It supports values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday.

frequency.timezone

enum

Y

See time zone: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones

Runbook Template

Action 

Create

oCreate a Runbook template.

Install Recommended Automation

oRecommend Automation of installing Runbook Template.  

YAML Sample

runbook_templates:

 - path: "Public Runbook Templates/FID/xxx"

   auto_append_feature_commands: true # whether to automatically append the commands of feature to RunbookTemplate Nodes, only for the commands that not include line pattern variables

   conflict_mode: Skip # support values: Override and Skip, the default value is Skip

Properties

Property Name

Type

Required

Definition

path

string

Y

The Runbook Template full path

auto_append_feature_commands

bool

N

Whether to automatically append the commands of feature to RunbookTemplate Nodes; only applies to the commands that do not include the line pattern variables.

It supports value:

true(default) or false

conflict_mode

enum

N

It supports value:

Override or Skip(default)