SDNC - State Diagram


State Diagram

Step Descriptions


  1. Initial State - DB entry to be set up.
  2. SDNC waits for receiving inputs from SO.
  3. On receiving the inputs(For Service creation - for instance) it processes Service Creation request where it does validation of request[ checks if mandatory parameters required by Virtuora is received in input parameters, does feasibility check and send request to Virtuora Controller and wait for response.
  4. On failure sync response, sends failure response to SO and clean up AAI entries and DB.
  5. On receiving intermediate response as Success, SDNC updates SDNC DB, updates AAI with Service parameters as 'CREATING' and sends synchronous response back to SO and starts timer and waits for async response from controller.
  6. Once timer is started, SDNC waits for async response.
  7. Handling Timeout - Once the time expires, SDNC clean up resources from DB and AAI and updates SO.
  8. On success async response from Virtuora Controller, SDNC will update DB enteries, send async response to SO and Update AAI with status as 'CREATED'.
  9. On failure response, SDNC will send failure async response to SO, clean up DB enteries and delete an entry from AAI.
  10. On receiving Delete request, SDNC will relate the request from the AAI data and sends the request to SDNC controller.
  11. Sync success response - Update DB details, Update AAI status as 'DELETING' and send sync success response to SO.
  12. Sync failure response - Update DB details, Update AAI status as 'CREATED' and send sync success response to SO.
  13. Async success response - Clean up DB details and send async response to SO.
  14. Async failure response - Update DB details, Update AAI status as 'CREATED' and send async success response to SO - A state will be hence terminated once the request comes to this state.


APIs

SDNC APIs based on OpenRoadm:

Topology Discovery:

SDNC to query Virtuora API for Topology Discovery
GET https://<hostname>:8443/cxf/openroadm/v2/networks/otn-topology
Consumes: application/json

{
  "network-id": "otn-topology",
  "ietf-network-topology:link": [
    {
      "link-id": "OWBSPDRNE16-XPDR1#XPDR1-NETWORK2##OWBSPDRNE15-XPDR1#XPDR1-NETWORK2",
      "org-openroadm-network-topology:administrative-state": "outOfService",
      "org-openroadm-otn-network-topology:link-type": "OTN-LINK",
      "destination": {
        "dest-node": "OWBSPDRNE15-XPDR1",
        "dest-tp": "XPDR1-NETWORK2"
      },
      "source": {
        "source-tp": "XPDR1-NETWORK2",
        "source-node": "OWBSPDRNE16-XPDR1"
      }
    },
    {
      "link-id": "OWBSPDRNE15-XPDR1#XPDR1-NETWORK2##OWBSPDRNE16-XPDR1#XPDR1-NETWORK2",
      "org-openroadm-network-topology:administrative-state": "outOfService",
      "org-openroadm-otn-network-topology:link-type": "OTN-LINK",
      "destination": {
        "dest-node": "OWBSPDRNE16-XPDR1",
        "dest-tp": "XPDR1-NETWORK2"
      },
      "source": {
        "source-tp": "XPDR1-NETWORK2",
        "source-node": "OWBSPDRNE15-XPDR1"
      }
    },
    {
      "link-id": "OWBSPDRNE11-XPDR1#XPDR1-NETWORK1##OWBSPDRNE12-XPDR1#XPDR1-NETWORK1",
      "org-openroadm-network-topology:administrative-state": "outOfService",
      "org-openroadm-otn-network-topology:link-type": "OTN-LINK",
      "destination": {
        "dest-node": "OWBSPDRNE12-XPDR1",
        "dest-tp": "XPDR1-NETWORK1"
      },
      "source": {
        "source-tp": "XPDR1-NETWORK1",
        "source-node": "OWBSPDRNE11-XPDR1"
      }
    },
    {
      "link-id": "OWBSPDRNE12-XPDR1#XPDR1-NETWORK1##OWBSPDRNE11-XPDR1#XPDR1-NETWORK1",
      "org-openroadm-network-topology:administrative-state": "outOfService",
      "org-openroadm-otn-network-topology:link-type": "OTN-LINK",
      "destination": {
        "dest-node": "OWBSPDRNE11-XPDR1",
        "dest-tp": "XPDR1-NETWORK1"
      },
      "source": {
        "source-tp": "XPDR1-NETWORK1",
        "source-node": "OWBSPDRNE12-XPDR1"
      }
    }
  ],
  "supporting-network": [
    {
      "network-ref": "openroadm-topology"
    }
  ],
  "node": [
    {
      "supporting-node": [
        {
          "network-ref": "openroadm-topology",
          "node-ref": "OWBSPDRNE11-XPDR1"
        }
      ],
      "ietf-network-topology:termination-point": [
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT8"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT8"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT7"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT7"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-NETWORK2"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-NETWORK",
          "tp-id": "XPDR1-NETWORK2"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-NETWORK1"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-NETWORK",
          "tp-id": "XPDR1-NETWORK1"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT20"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT20"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT21"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT21"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT22"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT22"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT23"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT23"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT24"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT24"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT25"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT25"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT26"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT26"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT27"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT27"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT6"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT6"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT5"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT5"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT17"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT17"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT4"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT4"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT18"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT18"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT3"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT3"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT19"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT19"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT2"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT2"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE11-XPDR1",
              "tp-ref": "XPDR1-CLIENT1"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT1"
        }
      ],
      "node-id": "OWBSPDRNE11-XPDR1",
      "org-openroadm-network:node-status": "PLANNED",
      "org-openroadm-otn-network-topology:node-type": "SWITCH",
      "org-openroadm-otn-network-topology:xpdr-attributes": {
        "xpdr-number": 1
      }
    },
    {
      "supporting-node": [
        {
          "network-ref": "openroadm-topology",
          "node-ref": "OWBSPDRNE16-XPDR1"
        }
      ],
      "ietf-network-topology:termination-point": [
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT8"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT8"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT7"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT7"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-NETWORK2"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-NETWORK",
          "tp-id": "XPDR1-NETWORK2"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-NETWORK1"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-NETWORK",
          "tp-id": "XPDR1-NETWORK1"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT20"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT20"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT21"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT21"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT22"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT22"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT23"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT23"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT24"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT24"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT25"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT25"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT26"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT26"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT27"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT27"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT6"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT6"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT5"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT5"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT17"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT17"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT4"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT4"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT18"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT18"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT3"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT3"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT19"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT19"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT2"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT2"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE16-XPDR1",
              "tp-ref": "XPDR1-CLIENT1"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT1"
        }
      ],
      "node-id": "OWBSPDRNE16-XPDR1",
      "org-openroadm-network:node-status": "PLANNED",
      "org-openroadm-otn-network-topology:node-type": "SWITCH",
      "org-openroadm-otn-network-topology:xpdr-attributes": {
        "xpdr-number": 1
      }
    },
    {
      "supporting-node": [
        {
          "network-ref": "openroadm-topology",
          "node-ref": "OWBSPDRNE13-XPDR1"
        }
      ],
      "ietf-network-topology:termination-point": [
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT8"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT8"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT7"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT7"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-NETWORK2"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-NETWORK",
          "tp-id": "XPDR1-NETWORK2"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-NETWORK1"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-NETWORK",
          "tp-id": "XPDR1-NETWORK1"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT20"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT20"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT21"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT21"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT22"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT22"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT23"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT23"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT24"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT24"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT25"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT25"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT26"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT26"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT27"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT27"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT6"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT6"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT5"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT5"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT17"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT17"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT4"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT4"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT18"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT18"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT3"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT3"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT19"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT19"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT2"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT2"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE13-XPDR1",
              "tp-ref": "XPDR1-CLIENT1"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT1"
        }
      ],
      "node-id": "OWBSPDRNE13-XPDR1",
      "org-openroadm-network:node-status": "PLANNED",
      "org-openroadm-otn-network-topology:node-type": "SWITCH",
      "org-openroadm-otn-network-topology:xpdr-attributes": {
        "xpdr-number": 1
      }
    },
    {
      "supporting-node": [
        {
          "network-ref": "openroadm-topology",
          "node-ref": "OWBSPDRNE14-XPDR1"
        }
      ],
      "ietf-network-topology:termination-point": [
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT8"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT8"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT7"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT7"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-NETWORK2"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-NETWORK",
          "tp-id": "XPDR1-NETWORK2"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-NETWORK1"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-NETWORK",
          "tp-id": "XPDR1-NETWORK1"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT20"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT20"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT21"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT21"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT22"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT22"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT23"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT23"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT24"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT24"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT25"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT25"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT26"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT26"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT27"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT27"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT6"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT6"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT5"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT5"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT17"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT17"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT4"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT4"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT18"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT18"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT3"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT3"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT19"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT19"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT2"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT2"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE14-XPDR1",
              "tp-ref": "XPDR1-CLIENT1"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT1"
        }
      ],
      "node-id": "OWBSPDRNE14-XPDR1",
      "org-openroadm-network:node-status": "PLANNED",
      "org-openroadm-otn-network-topology:node-type": "SWITCH",
      "org-openroadm-otn-network-topology:xpdr-attributes": {
        "xpdr-number": 1
      }
    },
    {
      "supporting-node": [
        {
          "network-ref": "openroadm-topology",
          "node-ref": "OWBSPDRNE15-XPDR1"
        }
      ],
      "ietf-network-topology:termination-point": [
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT8"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT8"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT7"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT7"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-NETWORK2"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-NETWORK",
          "tp-id": "XPDR1-NETWORK2"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-NETWORK1"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-NETWORK",
          "tp-id": "XPDR1-NETWORK1"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT20"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT20"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT21"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT21"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT22"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT22"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT23"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT23"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT24"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT24"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT25"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT25"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT26"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT26"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT27"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT27"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT6"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT6"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT5"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT5"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT17"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT17"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT4"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT4"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT18"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT18"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT3"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT3"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT19"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT19"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT2"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT2"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE15-XPDR1",
              "tp-ref": "XPDR1-CLIENT1"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT1"
        }
      ],
      "node-id": "OWBSPDRNE15-XPDR1",
      "org-openroadm-network:node-status": "PLANNED",
      "org-openroadm-otn-network-topology:node-type": "SWITCH",
      "org-openroadm-otn-network-topology:xpdr-attributes": {
        "xpdr-number": 1
      }
    },
    {
      "supporting-node": [
        {
          "network-ref": "openroadm-topology",
          "node-ref": "OWBSPDRNE12-XPDR1"
        }
      ],
      "ietf-network-topology:termination-point": [
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT8"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT8"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT7"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT7"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-NETWORK2"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-NETWORK",
          "tp-id": "XPDR1-NETWORK2"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-NETWORK1"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-NETWORK",
          "tp-id": "XPDR1-NETWORK1"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT20"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT20"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT21"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT21"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT22"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT22"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT23"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT23"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT24"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT24"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT25"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT25"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT26"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT26"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT27"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT27"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT6"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT6"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT5"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT5"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT17"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT17"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT4"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT4"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT18"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT18"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT3"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT3"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT19"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT19"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT2"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT2"
        },
        {
          "supporting-termination-point": [
            {
              "network-ref": "openroadm-topology",
              "node-ref": "OWBSPDRNE12-XPDR1",
              "tp-ref": "XPDR1-CLIENT1"
            }
          ],
          "org-openroadm-otn-network-topology:eqpt-srg-id": 1,
          "org-openroadm-otn-network-topology:tp-type": "XPONDER-CLIENT",
          "tp-id": "XPDR1-CLIENT1"
        }
      ],
      "node-id": "OWBSPDRNE12-XPDR1",
      "org-openroadm-network:node-status": "PLANNED",
      "org-openroadm-otn-network-topology:node-type": "SWITCH",
      "org-openroadm-otn-network-topology:xpdr-attributes": {
        "xpdr-number": 1
      }
    }
  ]
}


Service Creation:

Request passed from SDNC to domain controller(based on OpenRoadm) to provision service instance:

SDNC API for Service Creation
POST https://<hostname>:8443/cxf/openroadm/openroadm-services
Consumes: application/json
 
Produces: application/json

{
  "common-id": "commonIdSvc1",
  "connection-type": "service",
  "service-name": "otnSvc1",
  "sdnc-request-header": {
    "request-id": "resId",
    "rpc-action": "service-create",
    "notification-url": "http://167.254.204.118:32156/asyncNotification",
    "request-system-id": "SDN-MLC"
  },
  "service-a-end": {
    "service-rate": 10,
    "service-format": "Ethernet",
    "clli": "OWB-RDM-NE1",
    "optic-type": "gray",
    "ethernet-encoding": "10GBASE-R",
    "mapping-mode": "GFP-F",
    "tx-direction": {
              "port": {
                  "port-device-name": "router-1",
                  "port-name": "R1"
              }
    },
    "rx-direction": {
              "port": {
                  "port-device-name": "router-1",
                  "port-name": "R1"
              }
    }
  },
  "service-z-end": {
    "service-rate": 10,
    "service-format": "Ethernet",
    "clli": "OWB-RDM-NE2",
    "optic-type": "gray",
    "ethernet-encoding": "10GBASE-R",
    "mapping-mode": "GFP-F",
    "tx-direction": {
              "port": {
                  "port-device-name": "router-2",
                  "port-name": "R1"
              }
    },
    "rx-direction": {
              "port": {
                  "port-device-name": "router-2",
                  "port-name": "R1"
              }
    }
  },
  "service-layer": "otn",
  "customer": "customerInfo",
  "customer-contact": "customerContactInfo",
  "due-date": "due-date",
  "end-date": "end-date",
  "nc-code": "ncCode",
  "nci-code": "nciCode",
  "secondary-nci-code": "secNCICode"
}

Response:

{
“configuration-response-common” : {
              “request-id”: “resId”,
               “response-code”: “200”,
               “ack-final-indicator”: “Y”
        }
}
	
 


Service Deletion:

Request passed from SDNC to domain controller(based on OpenRoadm) to decommission service instance:

SDNC API for Service Deletion
DELETE https://<hostname>:8443/cxf/openroadm/openroadm-services/{service-name}
Request:
{
  "sdnc-request-header": {
    "request-id": "1",
    "rpc-action": "service-delete",
    "notification-url": " http://hostname:8090/receiver/faults",
    "request-system-id": "SDNC"
  },
  "service-delete-req-info": {
    "tail-retention": "no",
    "service-name": "test-name"
  }
}

Response:
{
“configuration-response-common” : {
              “request-id”: “resId”,
               “response-code”: “200”,
               “ack-final-indicator”: “Y”
        }


Async API for Service Creation:


Async API for Service Creation/ Deletion
Response:
{
      "configuration-response-common":{
         "request-id":"3e35dcad-8e2d-420a-b434-822daa38b2ff",
         "response-code":"200",
         "response-message":"SUCCESS",
         "ack-final-indicator":"Y"
      }
} 
 

SDNC APIs based on T-API:

API to Retrieve Topology details from T-API based External Controller:

API to retrieve Topology details:

This API will return topology details based on Topology Id or Name

API to retrieve Topology details
Method: GET
API : /tapi/v2/topologies

Parameters: 
Query - topology-id-or-name

{
   "topology":[
      {
         "uuid":"string",
         "layer-protocol-name":[
            "string",
            "string"
         ],
         "link":[
            {
               "uuid":"string",
               "administrative-state":"LOCKED",
               "direction":"BIDIRECTIONAL",
               "cost-characteristic":[
                  {
                     "cost-algorithm":"string",
                     "cost-name":"string",
                     "cost-value":"string"
                  }
               ],
               "latency-characteristic":[
                  {
                     "fixed-latency-characteristic":"string",
                     "jitter-characteristic":"string",
                     "queing-latency-characteristic":"string",
                     "traffic-property-name":"string",
                     "wander-characteristic":"string"
                  }
               ],
               "layer-protocol-name":[
                  "string",
                  "string"
               ],
               "name":[
                  {
                     "value":"string",
                     "value-name":"string"
                  }
               ],
               "node-edge-point":[
                  {
                     "node-edge-point-uuid":"string",
                     "node-uuid":"string",
                     "topology-uuid":"string"
                  }
               ],
               "risk-characteristic":[
                  {
                     "risk-characteristic-name":"string",
                     "risk-identifier-list":[
                        "string",
                        "string"
                     ]
                  }
               ],
               "transitioned-layer-protocol-name":[
                  "string",
                  "string"
               ],
               "validation-mechanism":[
                  {
                     "layer-protocol-adjacency-validated":"string",
                     "validation-mechanism":"string",
                     "validation-robustness":"string"
                  }
               ],
               "operational-state":"DISABLED"
            }
         ],
         "node":[
            {
               "uuid":"string",
               "administrative-state":"LOCKED",
               "aggregated-node-edge-point":[
                  {
                     "node-edge-point-uuid":"string",
                     "node-uuid":"string",
                     "topology-uuid":"string"
                  }
               ],
               "cost-characteristic":[
                  {
                     "cost-algorithm":"string",
                     "cost-name":"string",
                     "cost-value":"string"
                  }
               ],
               "latency-characteristic":[
                  {
                     "fixed-latency-characteristic":"string",
                     "jitter-characteristic":"string",
                     "queing-latency-characteristic":"string",
                     "traffic-property-name":"string",
                     "wander-characteristic":"string"
                  }
               ],
               "layer-protocol-name":[
                  "string",
                  "string"
               ],
               "lifecycle-state":"PLANNED",
               "operational-state":"DISABLED"
            }
         ],
         "name":[
            {
               "value":"string",
               "value-name":"string"
            }
         ]
      }
   ]
}

API to retrieve Node details:

  This API will return node details based on Topology ID/Name and Node ID/Name

API to retrieve Node details
Method: GET
API : /tapi/v2/topologies/{topology-id-or-name}/nodes

Parameters: 
Path - topology-id-or-name
Query - node-id-or-name


{
   "node":[
{
   "uuid":"string",
   "administrative-state":"LOCKED",
   "aggregated-node-edge-point":[
{
      "node-edge-point-uuid":"string",
      "node-uuid":"string",
      "topology-uuid":"string"
}
   ],
   "cost-characteristic":[
{
      "cost-algorithm":"string",
      "cost-name":"string",
      "cost-value":"string"
}
   ],
   "latency-characteristic":[
{
      "fixed-latency-characteristic":"string",
      "jitter-characteristic":"string",
      "queing-latency-characteristic":"string",
      "traffic-property-name":"string",
      "wander-characteristic":"string"
}
   ],
   "layer-protocol-name":[
      "string",
      "string"
   ],
   "lifecycle-state":"PLANNED",
   "operational-state":"DISABLED"
}
]

}

  API to retrieve Link details:

     This API will return node details based on Topology Id/Name and Link Id/Name

API to retrieve Link details
Method: GET
API : /tapi/v2/topologies/{topology-id-or-name}/links

Parameters:
Path - topology-id-or-name
Query - link-id-or-name


{
   "link":[
      {
         "uuid":"string",
         "administrative-state":"LOCKED",
         "direction":"BIDIRECTIONAL",
         "cost-characteristic":[
            {
               "cost-algorithm":"string",
               "cost-name":"string",
               "cost-value":"string"
            }
         ],
         "latency-characteristic":[
            {
               "fixed-latency-characteristic":"string",
               "jitter-characteristic":"string",
               "queing-latency-characteristic":"string",
               "traffic-property-name":"string",
               "wander-characteristic":"string"
            }
         ],
         "layer-protocol-name":[
            "string",
            "string"
         ],
         "name":[
            {
               "value":"string",
               "value-name":"string"
            }
         ],
         "node-edge-point":[
            {
               "node-edge-point-uuid":"string",
               "node-uuid":"string",
               "topology-uuid":"string"
            }
         ],
         "risk-characteristic":[
            {
               "risk-characteristic-name":"string",
               "risk-identifier-list":[
                  "string",
                  "string"
               ]
            }
         ],
         "transitioned-layer-protocol-name":[
            "string",
            "string"
         ],
         "validation-mechanism":[
            {
               "layer-protocol-adjacency-validated":"string",
               "validation-mechanism":"string",
               "validation-robustness":"string"
            }
         ],
         "operational-state":"DISABLED"
      }
   ]
}


 API to retrieve Edge Point Details:

    This API will return Edge Point details based on Topology Id/Name, Node Id/Name and EdgePoint Id/Name

API to retrieve End-points
Method: GET
API : /tapi/v2/topologies/{topology-id-or-name}/nodes/{node-id-or-name}/node-edge-points

Parameters:
Path - topology-id-or-name
Path - node-id-or-name
Query - ep-id-or-name


{
   "node-edge-point":[
      {
         "uuid":"string",
         "administrative-state":"LOCKED",
         "aggregated-node-edge-point":[
            {
               "node-edge-point-uuid":"string",
               "node-uuid":"string",
               "topology-uuid":"string"
            }
         ],
         "aggregated-connection-end-point":[
            {
               "connection-end-point-uuid":"string",
               "node-edge-point-uuid":"string",
               "node-uuid":"string"
            }
         ],
         "layer-protocol-name":"ODU",
         "lifecycle-state":"PLANNED",
         "name":[
            {
               "value":"string",
               "value-name":"string"
            }
         ],
         "operational-state":"DISABLED",
         "supported-cep-layer-protocol-qualifier":[
            "string",
            "string"
         ],
         "termination-direction":"BIDIRECTIONAL",
         "termination-state":"LP_CAN_NEVER_TERMINATE"
      }
   ]
}

RPC for Service Creation and Deletion:

RPC for Service Creation/Deletion
module opticalservice {

    yang-version "1";

    namespace "org:onap:sdnc:northbound:optical-service";

    prefix opticalser;

    organization "Fujitsu";

    contact
        "Mehreen Kaleem <mehreen.kaleem@us.fujitsu.com>,Franklin Dsilva
        <franklin.dsilva@us.fujitsu.com>";

    description
        "Defines API interface for optical service create and service
        delete";

    revision "2019-12-06" {
        description
                "Initial draft";
    }

    grouping optical-service-create-request {

        uses request-source-g;

        leaf global-customer-id {
            type string;
        }

        leaf service-type {
            type string;
        }

        leaf service-id {
            type string;
        }

        leaf notification-url {
            type string;
        }

        container payload {

            leaf domain-type {
                type string;
            }

            leaf service-name {
                type string;
            }

            leaf service-rate {
                type uint64;
            }
            leaf service-protocol {
                type string;
            }

            leaf coding-func {
                type string;
            }

            container service-a-end {
                uses service-end-g;
            }

            container service-z-end {
                uses service-end-g;
            }

            leaf service-layer {
                type string;
            }
        }
    }

    grouping service-end-g {

        leaf port-id {
            type string;
        }

        leaf port-name {
            type string;
        }
    }

    grouping request-source-g {

        leaf request-id {
            type string;
        }

        leaf source {
            type string;
        }
    }

    grouping optical-service-response {

        leaf response-code {
            type string;
        }

        leaf response-message {
            type string;
        }
    }

    grouping optical-service-delete-request {
    	
        uses request-source-g;

        container payload {

            leaf service-name {
                type string;
            }
        }
    }

    rpc optical-service-create {

        input {
            uses optical-service-create-request;
        }

        output {
            uses optical-service-response;
        }
    }

    rpc optical-service-delete {

        input {
            uses optical-service-delete-request;
        }

        output {
            uses optical-service-response;
        }
    }
}