Device Inventory and Configuration

Overview

This tutorial is to show how to collect inventory from the network and use that inventory to apply configurations to devices. Configurations will be performed using Infrastructure Configuration Manager (ICM).

The basic steps are:

  • import required artifacts
  • collect port inventory
  • create port groups to be configured
  • configure ports in port groups
  • remove configurations from ports

Prerequisites

This tutorial requires a NSP managed network with at least one SROS device. In order to exercise all examples, a minimum of 3 SROS devices is recommended. The provided examples will configure ports 1/1/25 and ports 1/1/26 on all managed SROS devices. Devices can be either classic managed, via NFM-P, or model driven.

Release

This tutorial has been tested with and is supported in NSP 23.8.

Postman

All steps in this tutorial are provided in the Inventory and Device Configuration Postman collection. Example responses for each request are also included.

The collection can be run using "Postman Runner" to perform the configuration. The following environment variables must be defined in order to run the collection:

  • server -- IP address of NSP server
  • user -- NSP OSS user
  • password -- password for the user
  • nodeA -- Router ID of one network element

Where required, "tests" have been provided in the Postman examples that retrieve identifiers from results that are used in subsequent requests. Tests have also been provided that retry certain requests for polling purposes (i.e. retrying until all deployments are fully aligned) or that introduce a slight delay to ensure objects are created and propagated through the system.

Artifacts

The following artifacts from ALED are required to run this tutorial:

  • ICM predefined intents bundle

Disclaimer

This tutorial is meant as a proof of concept and as an example method for configuring devices. It is not designed to be implemented, and must not be used as is, in a production network. It is intended to guide development of an OSS.

This tutorial has only been tested with SROS based network elements. The example API calls will not work with 3rd party equipment unless updated to conform to the 3rd party equipment naming conventions.

Kafka

Many of the requests for this tutorial are asynchronous, meaning a response is received before the request has been fully processed. For the purposes of the tutorial, the Postman collection uses polling to monitor the creation of objects and their current status.

Instead of polling, an application can use Kafka notifications to monitor these events. Example notifications have been provided at the end of the tutorial for some of the expected events. For further details on using Kafka, see Kafka Notification Service

Tutorial

Install required intent types

This tutorial makes use of the following intent type:

  • ICM Ethernet Port (icm-equipment-port-ethernet)

Intent Types for ICM should be downloaded from ALED and imported into NSP using the Artifact Administrator. The Artifact Administrator is documented in the NSP User Guide.

After being imported by Artifact Administrator, the Intent Types need to be imported into ICM by using the import-intent-type API:

POST /restconf/operations/nsp-icm:import-intent-types HTTP/1.1

{
    "input": {
        "imported-intent-types": [
            {
                "name": "icm-equipment-port-ethernet",
                "version": 1
            }
        ]
    }
}

Retrieve Inventory

In order to configure ports, an inventory of available ports in the network should be retrieved. To limit the response size, a request can be made using the "fields" query parameter so that only a subset of attributes is returned. The inventory can be stored in a database for future reference. The Postman collection stores the ports of interest in a variable for future use (See "Tests" tab in "GET Port inventory")

GET /restconf/data/nsp-equipment:network/network-element/hardware-component/port?fields=ne-id;name;component-id HTTP/1.1

Create Configuration Template

ICM requires a Configuration Template to be created that defines what configuration to apply to the ports. In the case of this tutorial, the template will use the ethernet port intent type and reference the default schema. Other schema forms can be used to predefine values and restrict what can be configured, but that is outside the scope of this tutorial.

POST /restconf/data/nsp-icm:icm/templates HTTP/1.1

{
    "template": [
        {
            "name": "Configure Port",
            "description": "",
            "life-cycle-state": "released",
            "intent-type": "icm-equipment-port-ethernet",
            "intent-type-version": 2,
            "schema-form-name": "default.schemaForm"
        }
    ]
}

Create Deployments

Deployments are used to push configuration to the network. Deployments indicate which configuration template to use, and what values to configure. They can be applied against individual ports or against port groups, as defined in Group Manager.

To apply a configuration against a group of ports, start by creating the group. There are two parts to creating a group:

  • creating the group directory (the container for the group) and
  • defining the contents of the group

To create the group directory, use the "groupDirectories" API:

POST /group-manager/rest/api/v1/groupDirectories?category=port HTTP/1.1

{
    "groupDirectoryName": "GroupDir26"
}

The response from creating the group directory will include a FDN which will be required to define the group. The group is then created using the "groups" API. The advanceFilterExpression is used to define what objects are part of the group. In the case of this tutorial, the filter will match all SROS ports on "1/1/26". The wildcard expression "%" is used to ensure matches across model driven nodes and classic managed nodes as they use slightly different naming conventions.

POST /group-manager/rest/api/v1/groups?category=port HTTP/1.1

{
    "advanceFilterExpression": "( name LIKE '%1/1/26' )",
    "alarmsSeverity": "critical",
    "filterEditable": true,
    "groupName": "Port 26 Group",
    "groupDescription": "N/A",
    "groupDirectoryFdn": "{{FDN from previous call}}",
    "usePhysicalMapLayout": true
}

The FDN of the group is used as input into the deployment creation. The group must be retrieved in order to get the FDN:

GET /group-manager/rest/api/v1/groups/name/Port%2026%20Group?category=port HTTP/1.1

Create the deployments using the nsp-icm:create-deployments API. The template-name must match the configuration template created above, and the targets must include the port group that was created. The target-data includes the desired end configuration of the ports. If the configuration template uses a schema that doesn't not allow for configurations to be manually specified, then the template-data may be null.

POST /restconf/operations/nsp-icm:create-deployments HTTP/1.1

{
    "input": {
        "deployments": [
            {
                "template-name": "Configure Port",
                "target-data": "{\"port\":{\"description\":null,\"ethernet\":{\"dot1q-etype\":null,\"pbb-etype\":null,\"qinq-etype\":null,\"speed\":\"100\",\"hold-time\":{},\"down-when-looped\":{},\"lldp\":{\"dest-mac\":[]},\"autonegotiate\":\"limited\",\"encap-type\":\"qinq\",\"mtu\":1492,\"mode\":\"access\"},\"admin-state\":\"enable\"}}",
                "targets": [
                    {
                        "target": "{{FDN from Group}}",
                        "target-identifier-value": "AccessPorts"
                    }
                ],
                "deployment-action": "deploy"
            }
        ]
    }
}

Similarly, individual ports can be configured using the same API. The example "Create Deployment With Target Data" from the Postman collection uses the inventory collected by "GET Port Inventory" to determine what nodes are available to be configured. All nodes that were found will have port 1/1/25 configured.

POST /restconf/operations/nsp-icm:create-deployments HTTP/1.1

{
    "input": {
        "deployments": [
            {
                "deployment-action": "deploy",
                "template-name": "Configure Port",
                "target-data": "{\"port\":{\"description\":null,\"ethernet\":{\"dot1q-etype\":null,\"pbb-etype\":null,\"qinq-etype\":null,\"speed\":\"100\",\"hold-time\":{},\"down-when-looped\":{},\"lldp\":{\"dest-mac\":[]},\"autonegotiate\":\"limited\",\"encap-type\":\"qinq\",\"mtu\":1492,\"mode\":\"access\"},\"admin-state\":\"enable\"}}",
                "targets": [{"target":"/nsp-equipment:network/network-element[ne-id='92.168.99.124']/hardware-component/port[component-id='shelf=1/cardSlot=1/card=1/mdaSlot=1/mda=1/port=1/1/25']","target-identifier-value":"1/1/25"},{"target":"/nsp-equipment:network/network-element[ne-id='92.168.96.143']/hardware-component/port[component-id='shelf=1/cardSlot=1/card=1/mdaSlot=1/mda=1/port=1/1/25']","target-identifier-value":"1/1/25"},{"target":"/nsp-equipment:network/network-element[ne-id='92.168.96.46']/hardware-component/port[component-id='shelf=1/cardSlot=1/card=1/mdaSlot=1/mda=1/port=1/1/25']","target-identifier-value":"1/1/25"},{"target":"/nsp-equipment:network/network-element[ne-id='92.168.99.245']/hardware-component/port[component-id='shelf=1/cardSlot=1/card=1/mdaSlot=1/mda=1/port=1/1/25']","target-identifier-value":"1/1/25"},{"target":"/nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=25']","target-identifier-value":"Port 1/1/25"}]
            }
        ]
    }
}

Retrieve deployments

Deployments may take some time before they have all been successfully pushed to the network. Poll for deployments that are not in the "deployed-aligned" state using the nsp-inventory:find API. A response that includes an empty list indicates that all configurations have been pushed to the network.

If there are any failures in the list, then those will need to be investigated to determine the cause of the failure.

POST /restconf/operations/nsp-inventory:find HTTP/1.1

 {
    "nsp-inventory:input" : {
            "xpath-filter": "/nsp-icm:icm/deployments/deployment[deployment-status!='deployed-aligned']",
            "depth" : "2",
            "fields": "template-name;target-identifier-value;ne-id;status;deployment-status;target"
        }
}

All deployments can be retrieved using a GET:

GET /restconf/data/nsp-icm:icm/deployments/deployment HTTP/1.1

In large networks with a lot of deployments the GET may return a large response. It is recommended in those cases to use nsp-inventory:find in order to limit the response size:

POST /restconf/operations/nsp-inventory:find HTTP/1.1

 {
    "nsp-inventory:input" : {
            "xpath-filter": "/nsp-icm:icm/deployments/deployment[contains(target-identifier-value,'%25')]",
            "depth" : "2",
            "fields": "template-name;target-identifier-value;ne-id;status;deployment-status;target"
        }
}

Remove Deployments

Configurations can be removed from the network by removing the deployments. Ports that were configured will be set back to default values.

Deployments can be removed individually using a DELETE method, or in bulk using the "delete-deployments" API.

In the case of the DELETE, the xpath for the configured port to be removed must be URL encoded. The example below includes the URL encoding of:

Configure Port,/nsp-equipment:network/network-element[ne-id='92.168.96.46']/hardware-component/port[component-id='shelf=1/cardSlot=1/card=1/mdaSlot=1/mda=1/port=1/1/25'],1/1/25

DELETE /restconf/data/nsp-icm:icm/deployments/deployment=Configure%20Port,%2Fnsp-equipment%3Anetwork%2Fnetwork-element%5Bne-id%3D'92.168.96.46'%5D%2Fhardware-component%2Fport%5Bcomponent-id%3D'shelf%3D1%2FcardSlot%3D1%2Fcard%3D1%2FmdaSlot%3D1%2Fmda%3D1%2Fport%3D1%2F1%2F25'%5D,1%2F1%2F25 HTTP/1.1
POST /restconf/operations/nsp-icm:delete-deployments HTTP/1.1

{
    "input": {
        "delete-option": "network-and-nsp",
        "deployments": [{"deployment":"/nsp-icm:icm/deployments/deployment[template-name='Configure Port'][target='/nsp-equipment:network/network-element[ne-id='92.168.99.124']/hardware-component/port[component-id='shelf=1/cardSlot=1/card=1/mdaSlot=1/mda=1/port=1/1/25']'][target-identifier-value='1/1/25']"},{"deployment":"/nsp-icm:icm/deployments/deployment[template-name='Configure Port'][target='/nsp-equipment:network/network-element[ne-id='92.168.96.143']/hardware-component/port[component-id='shelf=1/cardSlot=1/card=1/mdaSlot=1/mda=1/port=1/1/25']'][target-identifier-value='1/1/25']"},{"deployment":"/nsp-icm:icm/deployments/deployment[template-name='Configure Port'][target='/nsp-equipment:network/network-element[ne-id='92.168.99.245']/hardware-component/port[component-id='shelf=1/cardSlot=1/card=1/mdaSlot=1/mda=1/port=1/1/25']'][target-identifier-value='1/1/25']"},{"deployment":"/nsp-icm:icm/deployments/deployment[template-name='Configure Port'][target='/nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=25']'][target-identifier-value='Port 1/1/25']"}]
    }
}

Notifications

Rather than periodic polling, Kafka notifications can be used to monitor for changes to configurations. Changes will be notified on the nsp-yang-model.change-notif topic. Some example notifications are below.

Intent type has been successfully imported into ICM:

class-id: /nsp-icm:icm/imported-intent-types/imported-intent-type, instance-id: /nsp-icm:icm/imported-intent-types/imported-intent-type[name='icm-equipment-port-ethernet'][version='2']
 

{
   "nsp-model-notification:object-modification": {
      "changes": [
         {
            "name": "status",
            "old-value": "importing",
            "new-value": "successful"
         },
         {
            "name": "message",
            "old-value": "Importing the intent-type",
            "new-value": "Successfully imported/re-imported the intent-type"
         },
         {
            "name": "last-modified-time",
            "old-value": "2023-09-14T17:37:52.383Z",
            "new-value": "2023-09-14T17:39:17.203Z"
         }
      ],
      "schema-nodeid": "/nsp-icm:icm/imported-intent-types/imported-intent-type",
      "instance-id": "/nsp-icm:icm/imported-intent-types/imported-intent-type[name='icm-equipment-port-ethernet'][version='2']",
      "context": "nsp-infra-config-server-app",
      "tree": {
         "/nsp-icm:icm/imported-intent-types/imported-intent-type": {
            "@": {
               "nsp-model:schema-nodeid": "/nsp-icm:icm/imported-intent-types/imported-intent-type",
               "nsp-model:identifier": "/nsp-icm:icm/imported-intent-types/imported-intent-type[name='icm-equipment-port-ethernet'][version='2']"
            }
         }
      },
      "event-time": "2023-09-14T17:39:17.378Z"
   }
}

Configuration Template has been successfully created:

Headers: class-id: /nsp-icm:icm/templates/template, instance-id: /nsp-icm:icm/templates/template[name='Configure Port']
 

{
   "nsp-model-notification:object-creation": {
      "schema-nodeid": "/nsp-icm:icm/templates/template",
      "instance-id": "/nsp-icm:icm/templates/template[name='Configure Port']",
      "context": "nsp-infra-config-server-app",
      "tree": {
         "/nsp-icm:icm/templates/template": {
            "@": {
               "nsp-model:schema-nodeid": "/nsp-icm:icm/templates/template",
               "nsp-model:identifier": "/nsp-icm:icm/templates/template[name='Configure Port']"
            },
            "life-cycle-state": "released",
            "role": "physical",
            "target-data-struct": "{\"port\":{\"admin-state\":null,\"description\":null,\"ethernet\":{\"accounting-policy\":null,\"collect-stats\":null,\"autonegotiate\":null,\"dot1q-etype\":null,\"encap-type\":null,\"mtu\":null,\"pbb-etype\":null,\"qinq-etype\":null,\"speed\":null,\"mode\":null,\"hold-time\":{\"down\":null,\"units\":null,\"up\":null},\"down-when-looped\":{\"admin-state\":null,\"keep-alive\":null,\"retry-timeout\":null,\"use-broadcast-address\":null},\"ssm\":{\"admin-state\":null,\"code-type\":null,\"esmc-tunnel\":null,\"tx-dus\":null},\"crc-monitor\":{\"window-size\":null,\"signal-degrade\":{\"threshold\":null,\"multiplier\":null},\"signal-failure\":{\"threshold\":null,\"multiplier\":null}},\"lldp\":{\"dest-mac\":[{\"mac-type\":null,\"notification\":null,\"port-id-subtype\":null,\"receive\":null,\"transmit\":null,\"tunnel-nearest-bridge\":null,\"tx-mgmt-address\":[{\"admin-state\":null,\"mgmt-address-system-type\":null}],\"tx-tlvs\":{\"port-desc\":null,\"sys-cap\":null,\"sys-desc\":null,\"sys-name\":null}}]}}}}",
            "t-target-identifiers": "[{\"name\":\"port-id\",\"i18n-text\":\"Port-ID\",\"value-type\":\"STRING\",\"order\":3}]",
            "target-xpath": null,
            "description": "",
            "schema-form-content": "{\"meta-data\":{\"moduleContainer\":\"icm-equipment-port-ethernet:icm-equipment-port-ethernet\"},\"type\":\"object\",\"formProperties\":{\"title\":\"icm-equipment-port-ethernet\",\"columnWidth\":\"175px\"},\"properties\":[{\"columnSpan\":7,\"newRow\":true,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port\",\"hide\":true,\"name\":\"port\",\"readOnly\":false,\"type\":\"propertyGroup\",\"title\":\"Port\"},{\"columnSpan\":2,\"propertyGroup\":\"port\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.admin-state\",\"hide\":true,\"default\":\"enable\",\"name\":\"port.admin-state\",\"readOnly\":false,\"type\":\"enum\",\"title\":\"Admin State\",\"required\":false,\"enum\":[{\"name\":\"enable\",\"value\":\"enable\"},{\"name\":\"disable\",\"value\":\"disable\"}]},{\"columnSpan\":2,\"propertyGroup\":\"port\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.description\",\"hide\":true,\"name\":\"port.description\",\"readOnly\":false,\"type\":\"string\",\"title\":\"Description\",\"required\":false},{\"columnSpan\":7,\"propertyGroup\":\"port\",\"newRow\":true,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet\",\"hide\":true,\"name\":\"port.ethernet\",\"readOnly\":false,\"type\":\"propertyGroup\",\"title\":\"Ethernet\"},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.accounting-policy\",\"hide\":true,\"name\":\"port.ethernet.accounting-policy\",\"readOnly\":false,\"validations\":{\"ranges\":[{\"max\":4294967295,\"min\":0}]},\"type\":\"number\",\"title\":\"Accounting Policy\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.collect-stats\",\"hide\":true,\"name\":\"port.ethernet.collect-stats\",\"readOnly\":false,\"type\":\"boolean\",\"title\":\"Collect Stats\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.autonegotiate\",\"newRow\":true,\"hide\":true,\"name\":\"port.ethernet.autonegotiate\",\"readOnly\":false,\"type\":\"enum\",\"title\":\"Autonegotiate\",\"required\":false,\"enum\":[{\"name\":\"notApplicable\",\"value\":\"notApplicable\"},{\"name\":\"true\",\"value\":\"true\"},{\"name\":\"false\",\"value\":\"false\"},{\"name\":\"limited\",\"value\":\"limited\"}]},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.dot1q-etype\",\"hide\":true,\"name\":\"port.ethernet.dot1q-etype\",\"readOnly\":false,\"validations\":{\"length\":[{\"max\":2147483647,\"min\":0}],\"patterns\":[\"(0x[0-9a-f]+)?\"]},\"type\":\"string\",\"title\":\"Dot1 Q Etype\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.encap-type\",\"hide\":true,\"name\":\"port.ethernet.encap-type\",\"readOnly\":false,\"type\":\"enum\",\"title\":\"Encap Type\",\"required\":false,\"enum\":[{\"name\":\"null\",\"value\":\"null\"},{\"name\":\"dot1q\",\"value\":\"dot1q\"},{\"name\":\"qinq\",\"value\":\"qinq\"}]},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.mtu\",\"hide\":true,\"name\":\"port.ethernet.mtu\",\"readOnly\":false,\"validations\":{\"ranges\":[{\"max\":9800,\"min\":512}]},\"type\":\"number\",\"title\":\"MTU\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.pbb-etype\",\"hide\":true,\"name\":\"port.ethernet.pbb-etype\",\"readOnly\":false,\"validations\":{\"length\":[{\"max\":2147483647,\"min\":0}],\"patterns\":[\"(0x[0-9a-f]+)?\"]},\"type\":\"string\",\"title\":\"PBB Etype\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.qinq-etype\",\"hide\":true,\"name\":\"port.ethernet.qinq-etype\",\"readOnly\":false,\"validations\":{\"length\":[{\"max\":2147483647,\"min\":0}],\"patterns\":[\"(0x[0-9a-f]+)?\"]},\"type\":\"string\",\"title\":\"Q in Q Etype\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.speed\",\"hide\":true,\"name\":\"port.ethernet.speed\",\"readOnly\":false,\"validations\":{\"ranges\":[{\"max\":10,\"min\":10},{\"max\":100,\"min\":100},{\"max\":1000,\"min\":1000},{\"max\":10000,\"min\":10000},{\"max\":25000,\"min\":25000},{\"max\":40000,\"min\":40000},{\"max\":50000,\"min\":50000},{\"max\":100000,\"min\":100000}]},\"type\":\"number\",\"title\":\"Speed\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.mode\",\"hide\":true,\"name\":\"port.ethernet.mode\",\"readOnly\":false,\"type\":\"enum\",\"title\":\"Mode\",\"required\":false,\"enum\":[{\"name\":\"access\",\"value\":\"access\"},{\"name\":\"network\",\"value\":\"network\"},{\"name\":\"hybrid\",\"value\":\"hybrid\"}]},{\"columnSpan\":7,\"propertyGroup\":\"port.ethernet\",\"newRow\":true,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.hold-time\",\"hide\":true,\"name\":\"port.ethernet.hold-time\",\"readOnly\":false,\"type\":\"propertyGroup\",\"title\":\"Hold Time\"},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.hold-time\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.hold-time.down\",\"hide\":true,\"name\":\"port.ethernet.hold-time.down\",\"readOnly\":false,\"validations\":{\"ranges\":[{\"max\":3600000,\"min\":0}]},\"type\":\"number\",\"title\":\"Down\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.hold-time\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.hold-time.units\",\"hide\":true,\"name\":\"port.ethernet.hold-time.units\",\"readOnly\":false,\"type\":\"enum\",\"title\":\"Units\",\"required\":false,\"enum\":[{\"name\":\"seconds\",\"value\":\"seconds\"},{\"name\":\"centiseconds\",\"value\":\"centiseconds\"}]},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.hold-time\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.hold-time.up\",\"hide\":true,\"name\":\"port.ethernet.hold-time.up\",\"readOnly\":false,\"validations\":{\"ranges\":[{\"max\":3600000,\"min\":0}]},\"type\":\"number\",\"title\":\"Up\",\"required\":false},{\"columnSpan\":7,\"propertyGroup\":\"port.ethernet\",\"newRow\":true,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.down-when-looped\",\"hide\":true,\"name\":\"port.ethernet.down-when-looped\",\"readOnly\":false,\"type\":\"propertyGroup\",\"title\":\"Down When Looped\"},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.down-when-looped\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.down-when-looped.admin-state\",\"hide\":true,\"name\":\"port.ethernet.down-when-looped.admin-state\",\"readOnly\":false,\"type\":\"enum\",\"title\":\"Admin State\",\"required\":false,\"enum\":[{\"name\":\"enable\",\"value\":\"enable\"},{\"name\":\"disable\",\"value\":\"disable\"}]},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.down-when-looped\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.down-when-looped.keep-alive\",\"hide\":true,\"name\":\"port.ethernet.down-when-looped.keep-alive\",\"readOnly\":false,\"validations\":{\"ranges\":[{\"max\":120,\"min\":1}]},\"type\":\"number\",\"title\":\"Keep Alive\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.down-when-looped\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.down-when-looped.retry-timeout\",\"hide\":true,\"name\":\"port.ethernet.down-when-looped.retry-timeout\",\"readOnly\":false,\"validations\":{\"ranges\":[{\"max\":0,\"min\":0},{\"max\":160,\"min\":10}]},\"type\":\"number\",\"title\":\"Retry Timeout\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.down-when-looped\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.down-when-looped.use-broadcast-address\",\"hide\":true,\"name\":\"port.ethernet.down-when-looped.use-broadcast-address\",\"readOnly\":false,\"type\":\"boolean\",\"title\":\"Use Broadcast Address\",\"required\":false},{\"columnSpan\":7,\"propertyGroup\":\"port.ethernet\",\"newRow\":true,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.ssm\",\"hide\":true,\"name\":\"port.ethernet.ssm\",\"readOnly\":false,\"type\":\"propertyGroup\",\"title\":\"SSM\"},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.ssm\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.ssm.admin-state\",\"hide\":true,\"name\":\"port.ethernet.ssm.admin-state\",\"readOnly\":false,\"type\":\"enum\",\"title\":\"Admin State\",\"required\":false,\"enum\":[{\"name\":\"enable\",\"value\":\"enable\"},{\"name\":\"disable\",\"value\":\"disable\"}]},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.ssm\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.ssm.code-type\",\"hide\":true,\"name\":\"port.ethernet.ssm.code-type\",\"readOnly\":false,\"type\":\"enum\",\"title\":\"Code Type\",\"required\":false,\"enum\":[{\"name\":\"sonet\",\"value\":\"sonet\"},{\"name\":\"sdh\",\"value\":\"sdh\"}]},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.ssm\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.ssm.esmc-tunnel\",\"hide\":true,\"name\":\"port.ethernet.ssm.esmc-tunnel\",\"readOnly\":false,\"type\":\"boolean\",\"title\":\"ESMC Tunnel\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.ssm\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.ssm.tx-dus\",\"hide\":true,\"name\":\"port.ethernet.ssm.tx-dus\",\"readOnly\":false,\"type\":\"boolean\",\"title\":\"Tx Dus\",\"required\":false},{\"columnSpan\":7,\"propertyGroup\":\"port.ethernet\",\"newRow\":true,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.crc-monitor\",\"hide\":true,\"name\":\"port.ethernet.crc-monitor\",\"readOnly\":false,\"type\":\"propertyGroup\",\"title\":\"CRC Monitor\"},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.crc-monitor\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.crc-monitor.window-size\",\"hide\":true,\"name\":\"port.ethernet.crc-monitor.window-size\",\"readOnly\":false,\"validations\":{\"ranges\":[{\"max\":60,\"min\":5}]},\"type\":\"number\",\"title\":\"Window Size\",\"required\":false},{\"columnSpan\":7,\"propertyGroup\":\"port.ethernet.crc-monitor\",\"newRow\":true,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.crc-monitor.signal-degrade\",\"hide\":true,\"name\":\"port.ethernet.crc-monitor.signal-degrade\",\"readOnly\":false,\"type\":\"propertyGroup\",\"title\":\"Signal Degrade\"},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.crc-monitor.signal-degrade\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.crc-monitor.signal-degrade.threshold\",\"hide\":true,\"name\":\"port.ethernet.crc-monitor.signal-degrade.threshold\",\"readOnly\":false,\"validations\":{\"ranges\":[{\"max\":9,\"min\":1}]},\"type\":\"number\",\"title\":\"Threshold\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.crc-monitor.signal-degrade\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.crc-monitor.signal-degrade.multiplier\",\"hide\":true,\"name\":\"port.ethernet.crc-monitor.signal-degrade.multiplier\",\"readOnly\":false,\"validations\":{\"ranges\":[{\"max\":9,\"min\":1}]},\"type\":\"number\",\"title\":\"Multiplier\",\"required\":false},{\"columnSpan\":7,\"propertyGroup\":\"port.ethernet.crc-monitor\",\"newRow\":true,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.crc-monitor.signal-failure\",\"hide\":true,\"name\":\"port.ethernet.crc-monitor.signal-failure\",\"readOnly\":false,\"type\":\"propertyGroup\",\"title\":\"Signal Failure\"},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.crc-monitor.signal-failure\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.crc-monitor.signal-failure.threshold\",\"hide\":true,\"name\":\"port.ethernet.crc-monitor.signal-failure.threshold\",\"readOnly\":false,\"validations\":{\"ranges\":[{\"max\":9,\"min\":1}]},\"type\":\"number\",\"title\":\"Threshold\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"port.ethernet.crc-monitor.signal-failure\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.crc-monitor.signal-failure.multiplier\",\"hide\":true,\"name\":\"port.ethernet.crc-monitor.signal-failure.multiplier\",\"readOnly\":false,\"validations\":{\"ranges\":[{\"max\":9,\"min\":1}]},\"type\":\"number\",\"title\":\"Multiplier\",\"required\":false},{\"columnSpan\":7,\"propertyGroup\":\"port.ethernet\",\"newRow\":true,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp\",\"hide\":true,\"name\":\"port.ethernet.lldp\",\"readOnly\":false,\"type\":\"propertyGroup\",\"title\":\"LLDP\"},{\"columnSpan\":6,\"propertyGroup\":\"port.ethernet.lldp\",\"newRow\":true,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac\",\"hide\":true,\"typeProps\":{\"isPagination\":true,\"countProps\":{\"label\":\"Total\"},\"showCount\":true},\"name\":\"port.ethernet.lldp.dest-mac\",\"readOnly\":false,\"title\":\"Dest MAC\",\"type\":\"list\",\"key\":[\"mac-type\"],\"properties\":[{\"columnSpan\":2,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.mac-type\",\"floatingFilter\":true,\"name\":\"mac-type\",\"readOnly\":false,\"sortable\":true,\"type\":\"enum\",\"title\":\"MAC Type\",\"required\":true,\"enum\":[{\"name\":\"nearest-bridge\",\"value\":\"nearest-bridge\"},{\"name\":\"nearest-non-tpmr\",\"value\":\"nearest-non-tpmr\"},{\"name\":\"nearest-customer\",\"value\":\"nearest-customer\"}]},{\"columnSpan\":2,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.notification\",\"floatingFilter\":true,\"name\":\"notification\",\"readOnly\":false,\"sortable\":true,\"type\":\"boolean\",\"title\":\"Notification\",\"required\":false},{\"columnSpan\":2,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.port-id-subtype\",\"floatingFilter\":true,\"name\":\"port-id-subtype\",\"readOnly\":false,\"sortable\":true,\"type\":\"enum\",\"title\":\"Port Id Subtype\",\"required\":false,\"enum\":[{\"name\":\"tx-if-alias\",\"value\":\"tx-if-alias\"},{\"name\":\"tx-if-name\",\"value\":\"tx-if-name\"},{\"name\":\"tx-local\",\"value\":\"tx-local\"}]},{\"columnSpan\":2,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.receive\",\"floatingFilter\":true,\"name\":\"receive\",\"readOnly\":false,\"sortable\":true,\"type\":\"boolean\",\"title\":\"Receive\",\"required\":false},{\"columnSpan\":2,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.transmit\",\"floatingFilter\":true,\"name\":\"transmit\",\"readOnly\":false,\"sortable\":true,\"type\":\"boolean\",\"title\":\"Transmit\",\"required\":false},{\"columnSpan\":2,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.tunnel-nearest-bridge\",\"floatingFilter\":true,\"name\":\"tunnel-nearest-bridge\",\"readOnly\":false,\"sortable\":true,\"type\":\"boolean\",\"title\":\"Tunnel Nearest Bridge\",\"when\":{\"field\":\"mac-type\",\"value\":\"nearest-bridge\",\"operator\":\"equals\"},\"required\":false},{\"columnSpan\":6,\"newRow\":true,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.tx-mgmt-address\",\"floatingFilter\":true,\"readOnly\":false,\"sortable\":true,\"title\":\"Tx Mgmt Address\",\"type\":\"list\",\"hide\":true,\"typeProps\":{\"isPagination\":true,\"countProps\":{\"label\":\"Total\"},\"showCount\":true},\"name\":\"tx-mgmt-address\",\"key\":[\"mgmt-address-system-type\"],\"properties\":[{\"columnSpan\":2,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.tx-mgmt-address.admin-state\",\"floatingFilter\":true,\"name\":\"admin-state\",\"readOnly\":false,\"sortable\":true,\"type\":\"enum\",\"title\":\"Admin State\",\"required\":false,\"enum\":[{\"name\":\"enable\",\"value\":\"enable\"},{\"name\":\"disable\",\"value\":\"disable\"}]},{\"columnSpan\":2,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.tx-mgmt-address.mgmt-address-system-type\",\"floatingFilter\":true,\"name\":\"mgmt-address-system-type\",\"readOnly\":false,\"sortable\":true,\"type\":\"enum\",\"title\":\"Mgmt Address System Type\",\"required\":true,\"enum\":[{\"name\":\"oob\",\"value\":\"oob\"},{\"name\":\"system\",\"value\":\"system\"},{\"name\":\"system-ipv6\",\"value\":\"system-ipv6\"},{\"name\":\"oob-ipv6\",\"value\":\"oob-ipv6\"}]}]},{\"columnSpan\":7,\"newRow\":true,\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.tx-tlvs\",\"hide\":true,\"floatingFilter\":true,\"name\":\"tx-tlvs\",\"readOnly\":false,\"sortable\":true,\"type\":\"propertyGroup\",\"title\":\"Tx TLVs\"},{\"columnSpan\":2,\"propertyGroup\":\"tx-tlvs\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.tx-tlvs.port-desc\",\"hide\":true,\"floatingFilter\":true,\"name\":\"tx-tlvs.port-desc\",\"readOnly\":false,\"sortable\":true,\"type\":\"boolean\",\"title\":\"Port Desc\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"tx-tlvs\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.tx-tlvs.sys-cap\",\"hide\":true,\"floatingFilter\":true,\"name\":\"tx-tlvs.sys-cap\",\"readOnly\":false,\"sortable\":true,\"type\":\"boolean\",\"title\":\"Sys Cap\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"tx-tlvs\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.tx-tlvs.sys-desc\",\"hide\":true,\"floatingFilter\":true,\"name\":\"tx-tlvs.sys-desc\",\"readOnly\":false,\"sortable\":true,\"type\":\"boolean\",\"title\":\"Sys Desc\",\"required\":false},{\"columnSpan\":2,\"propertyGroup\":\"tx-tlvs\",\"_viewConfigPath\":\"icm-equipment-port-ethernet.port.ethernet.lldp.dest-mac.tx-tlvs.sys-name\",\"hide\":true,\"floatingFilter\":true,\"name\":\"tx-tlvs.sys-name\",\"readOnly\":false,\"sortable\":true,\"type\":\"boolean\",\"title\":\"Sys Name\",\"required\":false}]}]}",
            "intent-type": "icm-equipment-port-ethernet",
            "audit-start-time": null,
            "creation-time": "2023-09-14T17:39:22.308Z",
            "device-scope": "mdm-and-classic",
            "config-form-state": "up-to-date",
            "default-target-data": " {\"port\":{\"admin-state\":\"enable\"}}",
            "align-end-time": null,
            "align-start-time": null,
            "props": "{\"description\":\"Intent-type to configure physical, breakout, xiom and satellite ports\",\"role\":\"physical\",\"category\":\"port\",\"device-scope\":\"mdm-and-classic\",\"target-xpath\":\"/nsp-equipment:network/network-element/hardware-component/port[boolean(port-details[port-type!='connector-port'])][not(contains('name','/u'))][boolean (parent[nsp-model:schema-nodeid='/nsp-equipment:network/network-element/hardware-component/shelf'][not(contains('component-id','shelf=1-6-'))]) or boolean(parent[nsp-model:schema-nodeid='/nsp-equipment:network/network-element/hardware-component/port']) or boolean(parent[nsp-model:schema-nodeid='/nsp-equipment:network/network-element/hardware-component/card'][not(containsIgnoreCase('name','Processor'))])]\"}",
            "schema-form-name": "default.schemaForm",
            "audit-end-time": null,
            "flexible": true,
            "last-audited-by": null,
            "name": "Configure Port",
            "category": "port",
            "last-modified-time": "2023-09-14T17:39:22.308Z",
            "last-aligned-by": null,
            "intent-type-version": 2,
            "created-by": "admin"
         }
      },
      "event-time": "2023-09-14T17:39:22.505Z"
   }
}

Deployment has been created in ICM:

class-id: /nsp-icm:icm/deployments/deployment, instance-id: /nsp-icm:icm/deployments/deployment[template-name='Configure Port'][target='/nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=26']'][target-identifier-value='Port 1/1/26']
 

{
   "nsp-model-notification:object-creation": {
      "schema-nodeid": "/nsp-icm:icm/deployments/deployment",
      "instance-id": "/nsp-icm:icm/deployments/deployment[template-name='Configure Port'][target='/nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=26']'][target-identifier-value='Port 1/1/26']",
      "context": "nsp-infra-config-server-app",
      "tree": {
         "/nsp-icm:icm/deployments/deployment": {
            "@": {
               "nsp-model:schema-nodeid": "/nsp-icm:icm/deployments/deployment",
               "nsp-model:identifier": "/nsp-icm:icm/deployments/deployment[template-name='Configure Port'][target='/nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=26']'][target-identifier-value='Port 1/1/26']"
            },
            "role": "physical",
            "ne-id": "92.168.97.38",
            "audit-start-time": null,
            "deployment-action": "deploy",
            "target-data": "{\"port\":{\"description\":null,\"ethernet\":{\"dot1q-etype\":null,\"pbb-etype\":null,\"qinq-etype\":null,\"speed\":\"100\",\"hold-time\":{},\"down-when-looped\":{},\"lldp\":{\"dest-mac\":[]},\"autonegotiate\":\"limited\",\"encap-type\":\"qinq\",\"mtu\":1492,\"mode\":\"access\"},\"admin-state\":\"enable\"}}",
            "target-identifier-value": "Port 1/1/26",
            "ne-name": "s168_97_38_acpm",
            "merge": true,
            "detailed-message": null,
            "warning": null,
            "deployed-target-data": "{\"icm-equipment-port-ethernet:icm-equipment-port-ethernet\" : {\"port\":{\"admin-state\":\"enable\",\"description\":null,\"ethernet\":{\"dot1q-etype\":null,\"pbb-etype\":null,\"qinq-etype\":null,\"speed\":\"100\",\"hold-time\":{},\"down-when-looped\":{},\"lldp\":{\"dest-mac\":[]},\"autonegotiate\":\"limited\",\"encap-type\":\"qinq\",\"mtu\":1492,\"mode\":\"access\"}}}}",
            "deployment-status-message": "align not executed on the deployment",
            "align-end-time": null,
            "align-start-time": null,
            "create-start-time": "2023-09-14T17:39:47.052Z",
            "create-end-time": "2023-09-14T17:39:47.052Z",
            "message": null,
            "target": "/nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=26']",
            "audit-end-time": null,
            "deployment-status": "not-started",
            "config-status": "modified",
            "last-audited-by": "N/A",
            "category": "port",
            "last-modified-time": null,
            "last-aligned-by": "admin",
            "created-by": "admin",
            "template-name": "Configure Port",
            "status": "deployment-created",
            "is-discovering": false
         }
      },
      "event-time": "2023-09-14T17:39:47.190Z"
   }
}

As a deployment is pushed to the network there will be several notifications indicating the different steps in the process. The final notification will be similar to the following, which indicates the status has become deployed and aligned:

Headers: class-id: /nsp-equipment:network/network-element/hardware-component/port/equipment-extension-port:extension/deployment, instance-id: /nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=26']/equipment-extension-port:extension/deployment[template-name='Configure Port'][target-identifier-value='Port 1/1/26']
 

{
   "nsp-model-notification:object-modification": {
      "changes": [
         {
            "name": "deployment-status",
            "old-value": "aligning",
            "new-value": "deployed-aligned"
         }
      ],
      "schema-nodeid": "/nsp-equipment:network/network-element/hardware-component/port/equipment-extension-port:extension/deployment",
      "instance-id": "/nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=26']/equipment-extension-port:extension/deployment[template-name='Configure Port'][target-identifier-value='Port 1/1/26']",
      "context": "nsp-infra-config-server-app",
      "tree": {
         "/nsp-equipment:network/network-element/hardware-component/port/equipment-extension-port:extension/deployment": {
            "@": {
               "nsp-model:schema-nodeid": "/nsp-equipment:network/network-element/hardware-component/port/equipment-extension-port:extension/deployment",
               "nsp-model:identifier": "/nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=26']/equipment-extension-port:extension/deployment[template-name='Configure Port'][target-identifier-value='Port 1/1/26']",
               "nsp-model:sources": []
            }
         }
      },
      "event-time": "2023-09-14T17:40:02.510Z"
   }
}

Similar to deployment creation, the steps for deletion will also be notified in object-modification notifications. The final notification will indicate that the deployment has been deleted:

Headers: class-id: /nsp-equipment:network/network-element/hardware-component/port/equipment-extension-port:extension/deployment, instance-id: /nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=25']/equipment-extension-port:extension/deployment[template-name='Configure Port'][target-identifier-value='Port 1/1/25']
 

{
   "nsp-model-notification:object-deletion": {
      "schema-nodeid": "/nsp-equipment:network/network-element/hardware-component/port/equipment-extension-port:extension/deployment",
      "instance-id": "/nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=25']/equipment-extension-port:extension/deployment[template-name='Configure Port'][target-identifier-value='Port 1/1/25']",
      "context": "nsp-infra-config-server-app",
      "tree": {
         "/nsp-equipment:network/network-element/hardware-component/port/equipment-extension-port:extension/deployment": {
            "@": {
               "nsp-model:schema-nodeid": "/nsp-equipment:network/network-element/hardware-component/port/equipment-extension-port:extension/deployment",
               "nsp-model:identifier": "/nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=25']/equipment-extension-port:extension/deployment[template-name='Configure Port'][target-identifier-value='Port 1/1/25']",
               "nsp-model:sources": []
            },
            "target-identifier-value": "Port 1/1/25",
            "deployment-status": "deployed-aligned",
            "category": "port",
            "intent-type": "icm-equipment-port-ethernet",
            "intent-type-version": "2",
            "template-name": "Configure Port",
            "target": "/nsp-equipment:network/network-element[ne-id='92.168.97.38']/hardware-component/port[component-id='shelf=1/slot=1/card=1/slot=1/card=1/port=25']"
         }
      },
      "event-time": "2023-09-14T17:40:44.998Z"
   }
}

On this page