From 7fa3c2eb7eaa2dd90cdada284dbc6ef241bcd606 Mon Sep 17 00:00:00 2001 From: Fiete Ostkamp Date: Thu, 5 Mar 2026 16:05:53 +0100 Subject: [PATCH] Designer mode improvements - support for zooming in and out via mouse wheel and zoom buttons - support dragging the canvas - open action attributes pane when clicking on canvas elements Issue-ID: CCSDK-4175 Change-Id: I753610df72f5c6066bb514c0e7202c6fb8e1665e Signed-off-by: Fiete Ostkamp --- .../packages/designer/designer.component.css | 207 +- .../packages/designer/designer.component.html | 12 +- .../packages/designer/designer.component.ts | 81 +- .../mock-processor/fixtures/blueprints.json | 147 +- .../fixtures/cba-zips/5G_Core-2.0.0.zip | Bin 0 -> 39994 bytes .../fixtures/cba-zips/APACHE-1.0.0.zip | Bin 0 -> 63026 bytes .../cba-zips/RT-resource-resolution-1.0.0.zip | Bin 0 -> 10639 bytes .../fixtures/cba-zips/pnf_netconf-1.0.0.zip | Bin 0 -> 32256 bytes .../fixtures/cba-zips/ubuntu20-1.0.0.zip | Bin 0 -> 11059 bytes .../fixtures/cba-zips/vFW-CDS-1.0.0.zip | Bin 0 -> 19988 bytes .../fixtures/cba-zips/vLB_CDS-1.0.0.zip | Bin 0 -> 26418 bytes .../fixtures/cba-zips/vLB_CDS_KOTLIN-1.0.0.zip | Bin 0 -> 29076 bytes .../fixtures/cba-zips/vLB_CDS_RESTCONF-1.0.0.zip | Bin 0 -> 29503 bytes .../mock-processor/fixtures/model-types.json | 1765 ++- .../fixtures/resource-dictionaries.json | 12475 ++++++++++++++++++- cds-ui/e2e-playwright/mock-processor/server.js | 35 +- cds-ui/e2e-playwright/tests/designer.spec.ts | 339 + cds-ui/e2e-playwright/tests/packages.spec.ts | 57 +- .../tests/resource-dictionary.spec.ts | 17 +- 19 files changed, 14788 insertions(+), 347 deletions(-) create mode 100644 cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/5G_Core-2.0.0.zip create mode 100644 cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/APACHE-1.0.0.zip create mode 100644 cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/RT-resource-resolution-1.0.0.zip create mode 100644 cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/pnf_netconf-1.0.0.zip create mode 100644 cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/ubuntu20-1.0.0.zip create mode 100644 cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/vFW-CDS-1.0.0.zip create mode 100644 cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/vLB_CDS-1.0.0.zip create mode 100644 cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/vLB_CDS_KOTLIN-1.0.0.zip create mode 100644 cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/vLB_CDS_RESTCONF-1.0.0.zip create mode 100644 cds-ui/e2e-playwright/tests/designer.spec.ts diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.css b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.css index 8012abedd..2c9ae00f8 100644 --- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.css +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.css @@ -1,8 +1,5 @@ body{ - /* background-image: linear-gradient(-45deg, #000 9%, #fff 0) !important; - background-size: 6px 6px !important; */ - /* background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJ2LTQiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPjxkZWZzIGlkPSJ2LTMiPjxwYXR0ZXJuIGlkPSJwYXR0ZXJuXzAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCI+PHJlY3QgaWQ9InYtNSIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0iI0FBQUFBQSIvPjwvcGF0dGVybj48L2RlZnM+PHJlY3QgaWQ9InYtNyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNwYXR0ZXJuXzApIi8+PC9zdmc+") !important; */ background-color: #fff !important; } @@ -49,7 +46,6 @@ header{ position: relative; height: 60px; background-color: #1B3E6F; - /* box-shadow: 0 4px 10px rgba(238, 240, 245, 1.0); */ z-index: 200000000 !important; } .logo{ @@ -133,14 +129,12 @@ header{ margin-right: 0; } .btn-topology-action .fa{ - /* width: 16px; - height: 16px; */ text-align: center; font-size: 14px; color: #fff; } .topology-actions .dropdown-text, -.dropdown-toggle:hover ~ .dropdown-text, +.dropdown-toggle:hover ~ .dropdown-text, .dropdown-toggle:focus ~ .dropdown-text{ top: 7px; text-indent: 15px; @@ -165,7 +159,7 @@ header{ border-width: 0 5px 5px 5px !important; border-color: transparent transparent #fff transparent; } -.topology-actions .dropdown-content:hover, +.topology-actions .dropdown-content:hover, .topology-actions .dropdown-toggle:focus ~ .dropdown-content{ padding: 12px 0; text-indent: 0; @@ -246,7 +240,6 @@ button.rotate{ } .rotate{ vertical-align: bottom; - /* text-align: center; */ } .rotate span{ display: inline-table !important; @@ -255,12 +248,11 @@ button.rotate{ writing-mode: vertical-rl !important; transform: rotate(180deg); white-space: nowrap; - background: #1B3E6F; + background: #1B3E6F; padding: 15px 12px; font-weight: bold; font-size: 12px; color:#fff; - /* border-bottom-left-radius: 2px; */ border-top-left-radius: 2px; } .rotate i{ @@ -274,28 +266,14 @@ button.rotate{ .rotate a:hover{ text-decoration: none; } -/*PAUSE*/ -/* #board-paper svg{ - top: 30px; - left: 0; - height: 95%; -} */ -/* .ng-sidebar__content.ng-sidebar__content--animate{ - position: relative; - top: 200px; - padding-top: 70px !important; -} */ - .functionsList tspan{ - /* width:30px !important; */ - font: normal 13px sans-serif; - fill: #1B3E6F !important; + font: normal 13px sans-serif; + fill: #1B3E6F !important; overflow-wrap: break-word; } #board-paper #name tspan{ - /* fill: green; */ text-align: center; - + } tspan#type{ text-align: center; @@ -439,11 +417,6 @@ p.compType-4{ font-size: 12px; color: #6B7D93; } -/*PAUSE*/ -/* .ng-sidebar__content .joint-paper > svg{ - top: 80px; - left: 30px; -} */ .functionsList .joint-paper{ width: 100% !important; height: 100% !important; /*72vh*/ @@ -451,11 +424,9 @@ p.compType-4{ } .actionBtns .btn{ margin: 0px 15px 16px -90px; - /* padding: 9px 20px; */ border-radius: 0px; font-size: 14px; font-weight: bold; - /* outline: 0 !important; */ float: left; } .actionsList li:hover, @@ -527,10 +498,6 @@ p.compType-4{ color: #C7D0DD; font-size: 12px; } -/* .custom-control-input:checked ~ .custom-control-label{ - background-color: #1B3E6F !important; - color: #fff; -} */ .inserActionBtns .btn{ border-radius: 15px !important; padding: 6px 20px; @@ -564,13 +531,12 @@ p.compType-4{ font-size: 14px; background: url(src/assets/img/icon-drag.svg) #fff 20px center no-repeat; } - + /*CANVAS*/ .source-button.editBar{ position: absolute; z-index: 1000 /*9999999*/; top: 60px; - /* left: 50%; */ } .editBar, .editBar2{ @@ -781,7 +747,7 @@ p.compType-4{ .icon-function-attribute::before{ font-size: 16px; } -.add-attribute span{ +.add-attribute span{ font-size: 11px; line-height: 16px; } @@ -822,7 +788,6 @@ p.compType-4{ .attributesContainer label{ margin-bottom: 0; color: #1B3E6F; - /* text-transform: uppercase; */ font-size: 12px; font-weight: bold; line-height: 32px; @@ -884,8 +849,6 @@ p.compType-4{ .action-attributes .form-group{ display: inline-block; width: 100%; - /* padding-left: 12px; */ - /* line-height: 30px; */ } .action-attributes .form-group:hover{ cursor: pointer !important; @@ -893,7 +856,6 @@ p.compType-4{ } .action-attributes .form-group:hover label{ cursor: pointer !important; - /* padding-left: 12px; */ } .action-attributes .form-group:hover .attributeOptions{ display: inline-block; @@ -957,70 +919,19 @@ p.compType-4{ margin-bottom: 0 !important; } .accordion > .card .card-body{ - padding-bottom: 0 !important; + padding-bottom: 0 !important; } .function-accordion .card, .action-accordion .card{ overflow: inherit !important; box-shadow: none; } -/* -.accordion .card-header .btn-link[aria-expanded="true"], -.accordion .card-header .btn-link[aria-expanded="false"]{ - padding-left: 20px !important; - padding-right: 20px !important; -} -.accordion > .card .card-header{ - margin: 0; - padding: 0 !important; - background-color: #F4F9FE; - border: 0; - border-radius: 0; -} - -.accordion > .card .card-body{ - padding-top: 20px !important; - padding-bottom: 0 !important; -} -.accordion .btn-link{ - padding: 0; - color: #6B7D93; - font-weight: bold; - font-size: 13px; - text-transform: uppercase; - line-height: 15px; -} -.btn-link::before{ - font-size: 15px !important; -} -.accordion .btn-link:hover{ - color: #103D73; - text-decoration: unset; -} -.accordion .card-header .btn-link[aria-expanded="true"]:after, -.accordion .card-header .btn-link[aria-expanded="false"]:after{ - margin-right: 9px; - font-family: 'FontAwesome'; - float: left; - font-weight: normal; - font-size: 12px; -} */ - - - - -/* .accordion .card-header .btn-link[aria-expanded="true"]:after{ - content: "\f078"; -} -.accordion .card-header .btn-link[aria-expanded="false"]:after{ - content: "\f054"; -} */ .btn-addAttribute{ width: 20px; height: 20px; background-image: url(/assets/img/icon-add.svg); background-position: center center; - background-repeat: no-repeat; + background-repeat: no-repeat; vertical-align: sub; } .btn-addAttribute:hover{ @@ -1035,35 +946,19 @@ p.compType-4{ font-size: 10px; } -/* .source-button{ - position: absolute; - z-index: 9999999; - top: 60px; - left: 50%; -} */ /*jointjs paper*/ -/* #board-paper { - position: relative; - border: 1px solid gray; - display: inline-block; - background: transparent; - overflow: hidden; -} #board-paper svg { background: transparent; + cursor: grab; +} +#board-paper.is-panning svg { + cursor: grabbing; } #board-paper svg .link { z-index: 2; } -.html-element { - position: absolute; - background: #F4F9FE; - pointer-events: none; - -webkit-user-select: none; - z-index: 2; -} */ .attributesContainer .dropdown-text, -.dropdown-toggle:hover ~ .dropdown-text, +.dropdown-toggle:hover ~ .dropdown-text, .dropdown-toggle:focus ~ .dropdown-text{ top: 7px; text-indent: 15px; @@ -1096,8 +991,6 @@ p.compType-4{ line-height: 32px; color: #1B3E6F !important; background-color: #fff !important; - /* background-repeat: no-repeat; */ - /* background-position: 10px center; */ } .viewBtns .btn i{ margin-right: 5px; @@ -1108,13 +1001,6 @@ p.compType-4{ background-color: #1B3E6F !important; color: #fff !important; } -/*PAUSE*/ -/* -.joint-paper{ - width: 96.4% !important; - height: 80vh !important; - margin: 60px auto 0 !important; -} */ ul.templateLegend{ margin: 0; } @@ -1133,7 +1019,6 @@ ul.templateLegend{ color: #0ABDE3; } ul.editor{ - /* margin-right: -40px; */ margin-top: 16px; } .editor li{ @@ -1148,14 +1033,14 @@ ul.editor{ height: 92vh !important; } .dsl-editor { - height: 500px; + height: 500px; } .vertical_line{ border-left: 1px solid rgba(66, 169, 192, 0.1); height: 45px; margin-left: 12px; margin-right: 12px; -} +} .zoom-percent{ font-size: 12px; } @@ -1170,8 +1055,6 @@ ul.editor{ z-index: 0 !important; opacity: 0 !important; } -/* .modal-holder.modal-backdrop{z-index: 100} -.modal-holder + .modal-dialog {z-index: 1000} */ .modal-dialog{ max-width: 50%; } @@ -1203,7 +1086,6 @@ ul.editor{ margin-left: 50px; } .createAttributeTabs .tab-content{ - /* margin-top: 20px; */ padding: 20px 50px; border: solid 1px #F4F9FE; border-top: 0; @@ -1308,7 +1190,6 @@ ul.editor{ } .container label{ display: block; - /* color: #C3CDDB; */ } .container .selectedWrapper{ display: inline-block; @@ -1408,7 +1289,7 @@ ul.editor{ font-size: 17px; vertical-align: middle; } -.optional-attributes-menu .dropdown-content:hover, +.optional-attributes-menu .dropdown-content:hover, .optional-attributes-menu .dropdown-toggle:focus ~ .dropdown-content{ top: 36px; width: 100%; @@ -1527,9 +1408,6 @@ ul.editor{ .carousel { position: relative; height: 360px; - /* padding-top: 75%; */ - /* filter: drop-shadow(0 0 10px #0003); */ - /* perspective: 100px; */ } .carousel__viewport { @@ -1557,16 +1435,6 @@ ul.editor{ list-style: none; } -/* -.carousel__slide:before { - position: absolute; - top: 50%; - left: 50%; - transform: translate3d(-50%,-40%,70px); - color: #fff; - font-size: 2em; -} */ - .carousel__snapper { position: absolute; top: 0; @@ -1606,7 +1474,7 @@ ul.editor{ top: 0; left: 0; text-align: center; - + } .carousel__navigation-list, @@ -1634,8 +1502,7 @@ ul.editor{ .carousel__navigation-button, .carousel__navigation-button:hover{ display: inline-block; - width: auto; - /* background-clip: content-box; */ + width: auto; transition: transform 0.1s; color: #1B3E6F; } @@ -1656,40 +1523,6 @@ ul.editor{ outline: 0; } -/* .carousel::before, -.carousel__prev { - left: -1rem; -} - -.carousel::after, -.carousel__next { - right: -1rem; -} */ - -/* .carousel::before, -.carousel::after { - content: ''; - z-index: 1; - background-color: #333; - background-size: 1.5rem 1.5rem; - background-repeat: no-repeat; - background-position: center center; - color: #fff; - font-size: 2.5rem; - line-height: 4rem; - text-align: center; - pointer-events: none; -} - -.carousel::before { - background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolygon points='0,50 80,100 80,0' fill='%23fff'/%3E%3C/svg%3E"); -} - -.carousel::after { - background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolygon points='100,50 20,100 20,0' fill='%23fff'/%3E%3C/svg%3E"); -} */ - - .tooltipHTML{ position: relative; display: inline-block; diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html index d1b5eca98..219712761 100644 --- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html @@ -150,13 +150,13 @@
  • -
  • -
  • 100%
  • +
  • {{(zoomLevel * 100) | number:'1.0-0'}}%
  • -
  • @@ -276,11 +276,11 @@
    - - - +
    diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts index 652d235a0..f45a8e75c 100644 --- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts @@ -76,6 +76,11 @@ export class DesignerComponent implements OnInit, OnDestroy { paletteGraph: joint.dia.Graph; palettePaper: joint.dia.Paper; + zoomLevel = 1.0; + isPanning = false; + panStartX = 0; + panStartY = 0; + elementPointerDownEvt: { clientX: number; clientY: number } | null = null; ngUnsubscribe = new Subject(); opt = { tx: 100, ty: 100 }; filesData: any = []; @@ -125,6 +130,16 @@ export class DesignerComponent implements OnInit, OnDestroy { this.actionAttributesSideBar = !this.actionAttributesSideBar; } + zoomIn() { + this.zoomLevel = Math.min(this.zoomLevel + 0.1, 3.0); + this.boardPaper.scale(this.zoomLevel, this.zoomLevel); + } + + zoomOut() { + this.zoomLevel = Math.max(this.zoomLevel - 0.1, 0.1); + this.boardPaper.scale(this.zoomLevel, this.zoomLevel); + } + publishBluePrint() { this.create(); this.zipFile.generateAsync({ type: 'blob' }) @@ -308,14 +323,75 @@ export class DesignerComponent implements OnInit, OnDestroy { console.log(link); }); - this.boardPaper.on('element:pointerdown', element => { - // this.modelSelected.emit(element.model.get('model')); + this.boardPaper.on('element:pointerdown', (elementView: any, evt: any) => { + this.elementPointerDownEvt = { clientX: evt.clientX, clientY: evt.clientY }; + }); + + // Open the sidepane only on a clean click (no drag). Compare client + // coordinates from pointerdown vs pointerup; if the mouse moved more + // than 5 px in either axis we treat it as a drag and skip opening. + this.boardPaper.on('element:pointerup', (elementView: any, evt: any) => { + if (!this.elementPointerDownEvt) { return; } + const dx = Math.abs(evt.clientX - this.elementPointerDownEvt.clientX); + const dy = Math.abs(evt.clientY - this.elementPointerDownEvt.clientY); + this.elementPointerDownEvt = null; + if (dx > 5 || dy > 5) { return; } + + const elementType = elementView.model.attributes.type; + if (elementType === ActionElementTypeName) { + const actionName = elementView.model.attributes.attrs['#label'].text; + this.openActionAttributes(actionName); + } else if (elementType === 'board.FunctionElement') { + const parentCell = elementView.model.getParentCell(); + if (parentCell && parentCell.attributes.type === ActionElementTypeName) { + const actionName = parentCell.attributes.attrs['#label'].text; + this.currentActionName = actionName; + this.designerStore.setCurrentAction(actionName); + this.steps = Object.keys( + this.designerState.template.workflows[actionName]['steps']); + } + const functionName = elementView.model.attributes.attrs['#label'].text; + this.openFunctionAttributes(functionName); + } }); this.boardPaper.on('blank:pointerclick', () => { // this.selectedModel = undefined; }); + this.boardPaper.$el.on('wheel', (event: any) => { + event.preventDefault(); + if (event.originalEvent.deltaY < 0) { + this.zoomIn(); + } else { + this.zoomOut(); + } + }); + + this.boardPaper.on('blank:pointerdown', (evt: any) => { + this.isPanning = true; + this.panStartX = evt.clientX; + this.panStartY = evt.clientY; + this.boardPaper.$el.addClass('is-panning'); + }); + + this.boardPaper.$el.on('mousemove.pan', (evt: any) => { + if (!this.isPanning) { return; } + const dx = evt.clientX - this.panStartX; + const dy = evt.clientY - this.panStartY; + this.panStartX = evt.clientX; + this.panStartY = evt.clientY; + const t = this.boardPaper.translate(); + this.boardPaper.translate(t.tx + dx, t.ty + dy); + }); + + $(document).on('mouseup.boardPan', () => { + if (this.isPanning) { + this.isPanning = false; + this.boardPaper.$el.removeClass('is-panning'); + } + }); + this.boardGraph.on('change:position', (cell) => { const parentId = cell.get('parent'); @@ -452,6 +528,7 @@ export class DesignerComponent implements OnInit, OnDestroy { } ngOnDestroy() { + $(document).off('mouseup.boardPan'); this.ngUnsubscribe.next(); this.ngUnsubscribe.complete(); } diff --git a/cds-ui/e2e-playwright/mock-processor/fixtures/blueprints.json b/cds-ui/e2e-playwright/mock-processor/fixtures/blueprints.json index e5338acec..a9915628e 100644 --- a/cds-ui/e2e-playwright/mock-processor/fixtures/blueprints.json +++ b/cds-ui/e2e-playwright/mock-processor/fixtures/blueprints.json @@ -1,66 +1,119 @@ [ { - "id": "a1b2c3d4-0001-0001-0001-000000000001", - "artifactName": "vFW-CDS", + "id": "66bfe8a0-4789-4b5d-ad7f-f2157e3a2021", + "artifactUUId": null, + "artifactType": "SDNC_MODEL", + "artifactVersion": "1.0.0", + "artifactDescription": "Controller Blueprint for RT-resource-resolution:1.0.0", + "internalVersion": null, + "createdDate": "2026-03-04T14:38:25.053Z", + "artifactName": "RT-resource-resolution", + "published": "Y", + "updatedBy": "Selffish", + "tags": "test, regression" + }, + { + "id": "bf26fbf2-4bf5-482e-9cc1-e48e4878aceb", + "artifactUUId": null, + "artifactType": "SDNC_MODEL", "artifactVersion": "1.0.0", + "artifactDescription": "Controller Blueprint for vLB_CDS_KOTLIN:1.0.0", + "internalVersion": null, + "createdDate": "2026-03-04T14:55:25.305Z", + "artifactName": "vLB_CDS_KOTLIN", + "published": "Y", + "updatedBy": "PLATANIA, MARCO ", + "tags": "test, vDNS-CDS, SCALE-OUT, MARCO" + }, + { + "id": "3bca2b79-020d-4c98-ad19-a425a42c17d8", + "artifactUUId": null, + "artifactType": "SDNC_MODEL", + "artifactVersion": "1.0.0", + "artifactDescription": "Controller Blueprint for vLB_CDS_RESTCONF:1.0.0", + "internalVersion": null, + "createdDate": "2026-03-04T14:55:25.532Z", + "artifactName": "vLB_CDS_RESTCONF", + "published": "Y", + "updatedBy": "Seaudi, Abdelmuhaimen ", + "tags": "vLB-CDS" + }, + { + "id": "8713ea11-fbdd-4a58-ae01-e5ba4ff42a44", + "artifactUUId": null, "artifactType": "SDNC_MODEL", - "artifactDescription": "Virtual Firewall CDS blueprint", - "artifactFileSize": 8192, - "artifactPath": "", - "tags": "vFW,firewall,demo", - "createdBy": "admin", - "creationDate": "2024-01-15T10:00:00.000Z", - "updatedBy": "admin", - "updateDate": "2024-01-15T10:00:00.000Z", + "artifactVersion": "1.0.0", + "artifactDescription": "Controller Blueprint for vLB_CDS:1.0.0", + "internalVersion": null, + "createdDate": "2026-03-04T14:55:25.696Z", + "artifactName": "vLB_CDS", "published": "Y", - "blueprintModelContent": null + "updatedBy": "Seaudi, Abdelmuhaimen ", + "tags": "vLB_CDS" }, { - "id": "a1b2c3d4-0002-0002-0002-000000000002", - "artifactName": "vDNS-CDS", + "id": "d97bc302-0077-4cf7-a494-9d070767fac5", + "artifactUUId": null, + "artifactType": "SDNC_MODEL", "artifactVersion": "2.0.0", + "artifactDescription": "Controller Blueprint for 5G_Core:2.0.0", + "internalVersion": null, + "createdDate": "2026-03-04T14:55:25.907Z", + "artifactName": "5G_Core", + "published": "Y", + "updatedBy": "Thamlur Raju , Sangeeta Bellara ", + "tags": "Thamlur Raju, Malinconico Aniello Paolo,Vamshi, 5G_Core" + }, + { + "id": "a63117f8-2aa0-4b96-b8d2-ddaa9fa3b633", + "artifactUUId": null, "artifactType": "SDNC_MODEL", - "artifactDescription": "Virtual DNS CDS blueprint", - "artifactFileSize": 4096, - "artifactPath": "", - "tags": "vDNS,dns,demo", - "createdBy": "designer", - "creationDate": "2024-02-01T08:30:00.000Z", - "updatedBy": "designer", - "updateDate": "2024-02-10T09:00:00.000Z", + "artifactVersion": "1.0.0", + "artifactDescription": "Controller Blueprint for vFW-CDS:1.0.0", + "internalVersion": null, + "createdDate": "2026-03-04T14:55:26.088Z", + "artifactName": "vFW-CDS", "published": "Y", - "blueprintModelContent": null + "updatedBy": "PLATANIA, MARCO ", + "tags": "vFW-CDS" }, { - "id": "a1b2c3d4-0003-0003-0003-000000000003", - "artifactName": "vLB-CDS", - "artifactVersion": "1.1.0", + "id": "08dbe39c-f3db-40b7-8e77-c5ef069d4f1b", + "artifactUUId": null, "artifactType": "SDNC_MODEL", - "artifactDescription": "Virtual Load Balancer CDS blueprint – under construction", - "artifactFileSize": 5120, - "artifactPath": "", - "tags": "vLB,loadbalancer", - "createdBy": "designer", - "creationDate": "2024-03-05T14:00:00.000Z", - "updatedBy": "designer", - "updateDate": "2024-03-05T14:00:00.000Z", - "published": "N", - "blueprintModelContent": null + "artifactVersion": "1.0.0", + "artifactDescription": "Controller Blueprint for pnf_netconf:1.0.0", + "internalVersion": null, + "createdDate": "2026-03-04T14:55:38.385Z", + "artifactName": "pnf_netconf", + "published": "Y", + "updatedBy": "Aarna Services", + "tags": "pnf_netconf" }, { - "id": "a1b2c3d4-0004-0004-0004-000000000004", - "artifactName": "vPE-CDS", - "artifactVersion": "3.0.0", + "id": "7b54c252-74a4-4cfa-b4f6-bdaa25c55ee7", + "artifactUUId": null, "artifactType": "SDNC_MODEL", - "artifactDescription": "Virtual Provider Edge blueprint – archived", - "artifactFileSize": 6200, - "artifactPath": "", - "tags": "vPE,archived,edge", - "createdBy": "admin", - "creationDate": "2023-11-20T11:00:00.000Z", - "updatedBy": "admin", - "updateDate": "2023-12-01T11:00:00.000Z", + "artifactVersion": "1.0.0", + "artifactDescription": "Controller Blueprint for APACHE:1.0.0", + "internalVersion": null, + "createdDate": "2026-03-04T14:55:49.461Z", + "artifactName": "APACHE", + "published": "Y", + "updatedBy": "Lukasz Rajewski ", + "tags": "Lukasz Rajewski, CNF" + }, + { + "id": "9c254141-2083-47f6-980e-5b2f33563862", + "artifactUUId": null, + "artifactType": "SDNC_MODEL", + "artifactVersion": "1.0.0", + "artifactDescription": "Controller Blueprint for ubuntu20:1.0.0", + "internalVersion": null, + "createdDate": "2026-03-04T14:56:10.388Z", + "artifactName": "ubuntu20", "published": "Y", - "blueprintModelContent": null + "updatedBy": "RG, ONES ", + "tags": "ubuntu20" } ] diff --git a/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/5G_Core-2.0.0.zip b/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/5G_Core-2.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..4babb3cdd326d286ca7622b5a93d839ee1fcf93a GIT binary patch literal 39994 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

    vHh|y}(dhv&MZ7xM!+wFF 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%0D8%BL zve>bxNm=grZ1Pp&HaIWEMVlFlk#iBO)!^QVh4-G5{pQ5P0bEOusJwz60@n04743fpSO>k>d^FRVI=*4iA?@MZy z-CZxj*}#e9yk1uGh~Yxk8C~rUeG9o8_o{ojy+nd}IJ!Hh+7SHCsq0E6xFO}=+9rNn z>m{n@PB=v^Vzu6teZ-#6arY4Z`;-D%D1{vpyVWIvaRkg9eQtSngw6+MDidNwh+-}&&p=8n) zcXMwU_nkIfhN_?Yf-XeP?hUGyQb&QkD%^5&Iwy{Lba)S{LU|dY)a_nxu`1fIX}9ts*E#XQ z4&wssf+5Zsf6KL@kOi{O!KH^dVBbWfmQGz^he~%SC`;UPAQpZcBSG^e7ccO$Sn`@N z0ZdOYsmKJCU|7)|UTz~)E})mCJ0T6KqzD=t-h2)idE5{3nLXd?Xb8!IOL^6`YR$X+;>>I^=RJ8BsZ6NDSzD_Eu zHr@QBP9Lj#JmNFwZbCGS4wBFfp_2>`VGfBJZIk ztzcrMrlk>uq3oyZk&zv&m?kD7UpoF}FD33UXB_sAn-cyV(fi|V|Jn;t$;i>d{=c~6 zKaTsgIpW{OS=l*TTiE_f`|$nhp!~ydso!RiVt11N%U)e7ADi+S7}Hug|F>3dpZnZ# z_v^=Qh;sf4Wr_=;`KI@ZWn3HXto1_)SJlI=k47yA)rwm15E|G@g|NgXR%E`p9irLP z8xQyb@P)<~-%P0tl4!!Lo!Ky7gTQ*O)WG+s7^RlAa5re3uJ60!>~wuz_4YF7_mX>= zyuC3&sYlht!-n@eh$Wm9 zjiK#@F*Jl3h|UP~PcwxfAm$c1qsLcy%{6q%w`fq6Rtn?{! zo%C6X?}_)nY&wEXUn8e=9V+0GvOZZ^c+cNJj`7OkLrO z*o)BU&Uj@IA;s5@=~>2D4ldY8B*udOHN0lrGN z<}h^mAEZs=s>|b>@e z(Hm^hUET*3pDnC+ zUgepX=tuQ3uGOBNw^gjS*CuvQIKyCh6Lwt`&RgYh*dX;!bYms$PA*>==-|ZgPT1-I2?zFGy$gXdk#h< zuIF%uOXggx^a!lV71-WQFW>=u&p_}&q_w&9_n*nw@#)wvTE&ek4Q0}#0c|m`E|=Fu z!XJrfF@i7Kgak8p(4L1dqihaydbNm9&x7I5o}S zYjdRUKUshSshwwI;zdqwm5uZv)$zl@^Fhc1o$c)9S%n`b2x0*)opClU(TV?0ZEpb_ z$C7P}ikTTK$zoc7Be$5lf}%;7Be$5Gcz-Tg?{qHeRHI9?#zonXMQOd+^HivjvmiZZ$QfNl1|Uh~R+DPQ#ITcnNA5<2ttel|Gi zk^>5x1)9|6hk;nh8Xa7QrAt&F{ROf{mwsg$rCt7mt;h=(z@S?c$fTNr{4-%>uFW?n z38EF_?HRhL)+Z)dv8om&SJ5s4{qyu5(g8o~1neDFA(XgPeo@d(Lo5qLvU&Z8R_7Wx zcrlAAj1mxvC(R48$$nu_P2fdZ_2&FYu6s}-kj~N8;h^JSTS5S?1BwTwVIW%t(?QMM zc$=N(@j0GYvTD4Gd(qGhQRkS{uMDE-Z6M@cB5(*%8&vw5lUaCUojAlwVaUgko!f`f z!BQT?rC$VA-St!f=F4pRIu$a@e+WL@;#B+OGAfFUOJXWCJ9A+uo4YE)^L4=yVl~E2 zG6-H5(9+9kOdeA!8Y2xHx9J=yP>MKC1P6Aq*?tY1x129?8AfPBztbrTEI!yy!etl*GI3z|f9oX||n zJ%{x)MBIbLJYMlf0z_jAz|seuH>@GFUez@WgVGuJ8KCPh;T#$cmDs8@jD#j2ofHsx zwnz8X;Io0*RDu9S>-TH;OE6u1bPeWJbxl`KN&q5uP6hTocobpwD(+B30Y8dw_X3p6%lb?!d z-#jnJLbmo1Ee>X^Y1i|L6*+kA6AZWZfig}iBgNTueC&G1;e1MG*#&eZn2F2sk zjMF$Se6}EjcC*i)I)N4Z)q7t|KH~A+mW8tW5c*sLOfpjbp{R*&Gx4ta=?m+xJ<>R0 z(l&YF`|6N!6e$JmJ7R`n?k|!_(XAuGk_+tZ#7r+4n&TGN_QX0@+7$qNzVX_LSW%=@ zwC;X%g9H1L*)SzbTZar8eegxvy8H*{dVR2lMg*7ixQ@INg*E}@rz@}n`kq=XVKq$% zMmFQ%RL>)=-?f$aweauRo-IFr@#?DKAQnI$WblzfV>gdD+Aq=-&c&!Sk}m#HQ@z}i zA~?~LP0Z`FVtz35P!qnNR3H$~1#|rc<0iLFlnf19Izp;NtIqSd^^`h0wX$OJBY7Gv zejI7A4jw&M=40xl-zk^SI>0JF3T-Th_9SV)oweTmP?8E%@XTUW^Qaf_1l-sIVYqcy zRjv?R8tNz4W!9l)EO_9(ZAmb23=zi12^1kq%bpmHO>XVc#RSb-32>L4+2q9!<;){x zV```Kv&EQABozG8mgxoadmCx>pnMe++Avjwr4Zqk=vr=ByYrX?w`GN}RPFoyi`dz7 z-6+YUHN?c=*wGMYr7Lt_lt(OJo$SSIT2m*OQ$?&|EY|o%e&OX{$AH)eS5AHu1kDY= z3$vU0EDCmumUtJG^Fe&NjR|;3rr7q;k8B_d?7p%J|F&8iM3+ffwqk#;SEUaY>9k2+ z=JU1oa-=U3VFEK-+Jw4pbpi;Scwc&E;wdh~_Biy9jMS1Csm7lN(-v3Gwme3wC+a>7 z^#>=b$9?!~{*MMCxbbo~)<`V)@w2H~*<9B-uwL;|C{d^`L}I*K3Eyc`+1&!;^MR1P zyvheus54#2`*MTURwL$93$e!OxX{j70#?(XFL&Bw)MJR+T^jIE?xLni*qz%nl@trd za%RAg@8p(kt-EyYy2_W2D~=kJw`Vkg20uXAP!=vebIF>dVK^75tr=5U@6L}Ia4U6wA>d%l#iTw@A)Fd#BT69MCD%`{ z{{+UG_pR^%VG4I=?8P9rYh35(wmKI|NyV@@R#UEX|-lt4;(Xj@0Xje3k~?D+NL#CF5eH6unZXZehm{Qg>e+|2N`_& zF^WYgOhTe$h#($3B~cQ^>5%`td%VB-WK1hyT#@SMnWp!->^t%EO<9hXmf>e=dHkBf zN&Ff6G{2=(?90}CSW)ikVbAMNoVB)#jcPYr!73tiFCtT-emRSt#Bt5;dSkTrTtP^K zby=fzLz$dA9B{huD$`#bF4kl?f4F)8FOvWAi5pz7Qn07e9C0FZkaYOGyh0iUo+BW1 zb3e4`C05g-zVkD|Ah`%|h9zkcB$=2GtJ1PpDL`ZZ9|@XxOnmn+=;TnAy$I_R%xpLr z>$@(!bOAE6)X+oKRn^f})lqusC-o26X)z+|&j&p{2Lq--Wgb5dnkawXbzNWYI?e|f zaU|ntsQ%*rz&dv}Ml1ayQqB978=rO3BB;i|ZlP2qkcxH0x@=um;YaNv^LCo{OB#T; zJk+|yx`BHt*4`DP1^K5`D8_sgdD9wavuf9^{;%5|Rd>X_yNzFWBv92pNmJ5MrecPR z#ROCZhKiZNmI|YZqfD{gW)w|mbJk!x(`>-1`X@8_?B^QA=&n_j%yGPoZXPk37GoW> zn3YroR>{kfYZsyXs;kNK!1q73tnt)Sb%L^T_4PhdF0FV>JsieoYvWr4&e&t7&K% z*PX=~X`3P0k;JD1tS8{ZeziwH?BTPsF`a3)Il!V`l+q z{?r$JqpD!AHSKrPyf)8+Ski)@k7Gb7Mc_Z0(00rEm-B{>b3+t3S|>xMJ^6@wp~X8X zQvs`H`}+x#O>%t%3S5lNp@`_ERO#kqmx_{f_Ak_e?hkFUbu1Zoeyr)@LJYhG*XvZ4 zOq>pQhIF0kcBPJ)+p@VTW|TkP$>b`bU-RaTCJ5tPwD=mkD5yofaNL>YP_A6ecIehb zmzdYZoOGEMn8UU0eBL=za_E@8K)aRFFe1&kQ7DCH+uWN|*1b}utB(e-(b^$qVxAZ0 zEyqR3)v@wvjpHaQVLpI$7zY;@36RTD{wD(5+9(6E@%5Ju_oMhbu+xXs(4oZrNz=eE zm>-m{YN-(BmjT}>9_NLf8Lcw`fp~WzFEGmf6x>7hg-yd zIw3W}Q-jayB4qtT>8awQCnY{T_^ZLAml4_ ztXlx}HRcaQm5Ql<&Dn*C$VnNV3_-lb*DngnVGj)6p%6F1WxV7mLGzB_M}{P7qa^CF z69P=*4@c!1u@&Vn^0RoNDl}$ZUGw<$;wA_>CM!F7#|Sxery&U+9yS&(-0m=S#4v`j zm!tcucnS&3t%bxE)V1dttA1qPJSeI*Nm}(ZRrQE95(9(it>A+Rc6N3`f6~6O zJoKq(9Y<$AlD@WRjl90sOM1Nf{WyWDo5z zr!q3onkyxCW%LKd4#jM3TWiuII#${y%2y+qjgCi5zsza4J);IZf?0XBXA|TVk%c)~ zBlkdtmsTZ}3^JAdETq!btRW*D9aL#=C%pCQVI~N7RLw1VmEXn?k(FX-a@f!Bj4)D zBh+BN=CdloI7lh)uBbo3iGU4$-2cE_+(kxrekFX^XU;IJh+)6m`X>F6@(mS zoo#D^7U_nA!Z=aESooBcM9?8f{wUj;dJ(pXChdNXBiD_PLp!cQ|{7GGY_*9bD&|H-4rEb*#9Y`=y z+k?~RIBXo$jy15jFF$5DIFK~P4w-Cp7bq5?e|CK`Dap7Lwb@W1#64A(EDEacUp88( z9RA_u1gnzDl8=L#P9EHsos8!gQ?8Vhr#E~36!v03S7Qm7PnQf&)m%&z?cVc0j3&cuA`Jm^*V!cvH zdz0cMg|eLCFSpBw8S|ypN>O7)URI&lAM98jmVy-cgd?!+rB_)A!0R74pNFZ1<}~6= z}J}zc+a(QH`CiP>Yj%tiTL;__?rW zmVD|rIodg=(b4UBlp=e6=Z?znv(Tp60YX=xp(|0#MzP`PDk!l}3rtuy9=kjlqT7@5 z0inwva92X<$GEsD7g~y-AuKpN9*g2cGSw6a*C+?6=OzYAg(V%y9_p!)XllOnKw%?@ z^n5UPgk}1N>Si!>7HJS?;_fX2t)qg18DC;FzB`y*Df*$#Vqk?S_TlCih_UIxZboXgtCi z@xYQN2%%TzZ|}5l4GEeb6e}UE!Yq@p5jv>ZVCg>4(ZuV4B>^Enx~5L)VLANl0$4sr z43(wn0GJ_#Ib`rjkI^WH|HejVwJPeG@!%P-0$Olb33^3tNLnvFfJ0aI6&<)L5WBNP z=>gCZj0~Ba0YO2tOE$?o8m%R`8l|;l(mK*SI66%zS)TKlf zNTfP7)y<`A78~=RT^L}N^_y)fDvC(8&jOs}p#bwla>QpmD48QG`D-|Lt$h@Ve89|< z{fm^qVAfo*(v^d&S&5(uR*AH%eGJpIOg>jppzoT~^}yLoki`ovBL)tA(5WaCYql@L z6!CVIdrbFcWVdJ%k=z$Mhk#5&c2gypB1H54dCyCvpHBCRJM#@aMy=&@FCf|*Udr(R z>T^6-%nb++4A0jsSbh+zr4D}u0lP+vp;gzJlK!G9KwO*m5H;~ASboXZqGQ_*9FaVT zn~8LiO#{;M9K#bfuD#ZB=Z{EnsaumoGJpS+gZK1F7@c^89re-g7^v_Z&G#X0Zm!&F zA;@M0eW??7<_=4D;ZZ%_fHpP%6ei6G&_SsD@Hok6-+q@jKWlnG?Qxt4F%x7&d1ul< zwCT62rD%y*`#Jf2hX_FKa&H^T_RoRS@b&ku@JL<S(K#Xv0MML$38ggyfyZ*1RQLt9u$_4%n(s#^X-#ba=I z+<;H1fK{?#J-PZ!4X!#b%o3Ef-BgvZG<8$6GN8ai(q=q3@IZ1^ZQKSZeL$`#O+u{3jNkv zVX1H|lEHM5@6#PhnNM@RXIu$ql@tM5;-}D^iCm<1+yEeW-M3Fznc3<3WDb?sV*G=STXSUk~`mm&yjt;(M0JUVtxDQyzgM7cW$} zhlZ{&ti@#Rb;bpkcFifYno42oZmu>Sep+4m0Ici0LgTUWva4Ko2$|aMNLv=6ExgR( z-Xe?2S2~`N#S9P{W+;-6DjSAMQCAgJZM62NNu)iKmajV`&t1ZM+RYidE1e=rEJ|dn zDRL8!V)cp?p8b@gs3FS~5_+@-==Ydfs&ve+Z{-dYnKJc+H=cY$(vUFH?Ed|st1PnGfksk|Orro{e@MuN*>8O81-2g9L9Cka4niNk}fuXE0O}7+! zmKPaMGSwxJ?ZD%K&7yn@u5^@khSJw6zl&t<$&z-yla`;9{Ba(lmsH`ZPTgBB@C|rV z{3wu_(nPdg=JlE9wruTr>F(D{SGZU719ZAzWcQwI6$F?5Wd$Fq*byR}ZAERySrAhj z8Hzt2BazOBrb0E1TeE#us9NK&kzHYdC4B+erCD5sF0cyL;mo(s9{T;_U9hZ917^ zk!)f?LN(4fzphsS683}rM29lqHFFyeEZOjZ%_s>#m|;DW0-r#f6fS`I2d90AW0;0q z@tSPN?AXoTqn51nUc#oNa?IrgwB}cM+Q}6C&2G>Lgtbqp4zy{0al0a1&*<2$5*>`= z?VTN@oE5RW)1k6#@}*<<|p|N4C8fbebI*F z4v$2JZ1jg6DWZ*zScPaYkn-&ebd1Uox~9-!zA>bvJ)F1012QS-!1v~0m_M;#qn%rK zF-T>6JEP4qy=+8r;R8DY4Cys`5xamO%U*sPwhkzTi`HiliLsQ#%iO1DJXCS6mEu$Ecjb~M3Q(I zx;&(S_mj^yEGO5g!Q6i;HZ81C`&M0?+iCoh-8Yl;xNCswX*b-WxR`P%dd2zWK2*G} z)z4^Y8U3nxQplL?1BG*VT7AE@gg9^||L#a{4t3$L?Za+4Dk_g43M;OGE4v;1w}A&3r=(nFQgnb49&KM)8Vif(XHu#WnP{(3)vH(>v3WN4Zsk+Ww=B z2KM12aw>)=i!gZ2iDLCx&7mOcuM~rXT+D#Zy$rRwPCZ>-$nZIgf%OG7fJKBwVd!3b z8JO^>*)(vH1S}L4>&?u3#Pnlhx!M-!d$EeNF#|lPv5YC6sYjQexyz-K1#7jT5|7Mk z#c;kDs1N%WPUMEptxbfpNFeSVaP=i(kP|LVvn87u5?Lk5=?_XU1T=W`@KP>$5%NPe z4Pp8tv1l6h0qLbG97NSvEhnTXQ41I}yX}2k{$WRA6uIjN*j=L38|B~Pj~~>$kU;lI zk5SX%J0cqK?Kdj$@)D)&akW4qb|f6r1QJ)bpW|USlU)9Y`2q}$jAyf8NsC{w=^8#t z-sFRW_yB}#u?X0LkJtl!0Y7G*2fyqOz|ONfJ4GKaBqF`k%=dL?3Sc#)QK+{*ug^v) zl%475&-r!!#RpsD04;UUWk&nLX3e>{?M%(M(jA5#ckV+$_HY1@#F;3Q`B@X^9$Ce& zA}DHi`_jo-DK~o;hZ5l?>%uBd8FbV|P3e;E*Zb(>$QQ^{?>@O2V*Q2L(dr+~>*@^h6TG%V zqvSx^@Zrk1>%bS2V%!K>+H_Y;i?b^mfm%hDXaVbxa7nB29D!b+^{6tHJ{7(J1v--B z1WnnOT{)8?6OOAp);Q(V%p_A$iSTkrG?7DOyvt1F&V}JTEgRS^mhV}nCGB>4>0|}w zleq;adSMB+hjKM|Ea^82g!{@|Zo@^1!iwIT>`N{DD2vL%FnYq=wRR_l9O{ow`(rit zUBZH0nxC#WtT0z%`l`Ai99%cgS0}4AS*w zq1Wf@iWc71IhP;^inrj7>pG@$g8LFS3p|vV4wgWE`Uh{~b`=RGft!tDV|Ey|gGaDA z4!bU#4Yj$EP?ztVJ6gO=kmxvRA2dGTXf(I{e7=S_;ydZ7GqiSoFm`6^SSq*hVE6xI zK~hE&&h>P#PvY+{l83GVG_lh&6kT=T5o8`fi$L%_VJ^~fy}upy(kciYbUwFH!bMI( zZLt09frr2|Gdzd^9sRpKeS|;s{mD#W$2`jS;T5Bm)Z-AYjH}8XB?U+S#k_KaMRG5B zA@E!kL)mR4F_AvPxkDNbzK}E$CA3busRd{4J1DnGMm4eO6nN}jI>&5H4R^gG%WSZE z{j1g@X{pN<`So6&7l1*ANWb%!dA9CP177KuQb}hda2@Dp_O#+SuyMyiQyALQ`T_}3 zP<;dQj`1<$^I-?4iWBO=mSrs~>o5YV89h(ykr*ClMN_Jo3 z%?b6cX0jvMtMx9!p}F=u1WwdTtrz`tyFg`c+}EK{cR|n2Gf6&tQ51#V+C5E3V08k& z<3u%;1ei3`9H;nbHi6hfK8CL7s#t@B$%CVP`P|-~3sj_FwEDz_V&IfK3Rc{Bh&|K| zU&_AL*ct~OHe;ugz{xy8?nuBXkygsxBu;ajfCmLvn=(`IUE>PI_1-#kRkA+I@oSzE zRsuX5D)rC1A&D&IVJaiZHiI&@`Et+&+|l-L2+hT?&&e)Jne+5kiY(zwJ@sQT&6^f7=l?Ji_e5%(F6E4;fSeWdmB2aOHHINa{Qp$Ve!q{ zSCcwN)+Iyds#Foh4G4J#YzXCXRfiCmk?-N@bab9OTjZ}Ic1R%ojXr27_e&f&mW!>e zbnN7&)@ny}$oPO@A~xuDlW2s_SOJuwPtz={4&}S_V%#y&+@aj_NQ=*GK|Pfz>2^XZ zByu5@$q85pJk_y*gCi{BUuSFpbUNw-X+yY^?OtR8y|_%*);#O;Ca`ZEl$%-dl51o* z@nuR}4H8DieVOif(54{2ANfp7e2~huckFdxDnqYfmb;tw!Lr~mvAx1cw?C(#&8UkS zZ^EowH_OU2h4?Zeiq@HYM}^EzNkU^|g#muC2saRmi1YL5;YtYqu|62o#AcSvai$+l z2O_)?yM;p>iQoZ&hSO~a2M`iSZ|rio!p=7-`+L;_r)H>LkK^S7DHLUnhAbOYF83$h z>uq}1G*!^9CPE}_lz?sb`1NNm+qlYYihAf;X@{)mM8cQbp%4rUrYyY2UrzZR&kO>R z=X3+l!cC0l=}ml4zV+?Zb|j^%L%$$4+J9+$tTy;@4vlvI>mPG=?&JD*6vzMoDN_G# z&hEFG(EqxMOi;^7+Wc=$*qx|uSZ~!LzN8Ls<7kGF3NRztiE*Y*bCbsEX-GA2F6j)# zH`sHqB0!39$>l(K-xd_$<(Ey69=*=jeT4X2Njq>Y!tPKjNW(*g))c$~y1#MO`t!*_ zH>HG?OPvbzeynYPb*%LTIkD36-j8OBX%mGkV&CpVC6fUn`DB0^)5>pY8 zkBU@!pRkB|LmaROlOdtDQLu_PmR{{$zZ&LVC_`27V8NZ8odHu|!ZEaBkOVQ|wWfuP zjh2mpwO57SVRv=m6W%-PFB-TvN~ep!xbEU9We)?G50OoxippxzFYf5%lB3!& zLF>I@^UeGb>`jBAr0WopM@LYp?~1y|R>V$+fiLm8(uwbT^9&ZcJ=4?X6)g|A*ct&! zKS%$UMz~J8@K;shK_8_r<;>x7k!4P3K-rk^*1cx{`0(>0XlM|)+xX#g1R``8LcO4e z!gP5JnonC4kUYHb?Bf$C*J78*PY`RQ!AxC{juOe@X&t;h`XWUEP#nO?5H$LDie#&v z@^q~h$xOis=8kZ9cV>RaCwy&#Sp-@gW+YK;)Mp$EPrPS_2nHR{VDVq6 z>bM4r4A>eLb3IE?4Fv;JCQ+LZttx}ryQAN69;uoF`q4twgt@v zBtc0T=YrE^I#K56GjFjEWdgOF~$J8vZ@~M3(}y)3i(j| z@|Y;${L=ruzy(YAn;UG`4CE=V_xSv=XJk_%< zRvBYRuRgg##Bj8F_F=9urR&@Uv-|H{^K8`_YqkFnE&;!H@3z>+s!6_u4c1;vqE5a} z8yW0@H!~Xi*qf8Jpf7;WHX!Fbw4LX0o{cHHF6ilQ+319WJ*0=3DnSDSYFiC*Hu|~> z&^`i*hI|YY1m@5|1jPsOGc`v@KAKXkCpdJ-5BGl9k~%zV7U}jgP_iFJ_CrK2>rMDJ zVr1RRdA2r@3_Gv`hzlDSPq_D(fOOJ;)tkw}J4aM62rVf{7j4c$_Kt!&7k{?lC`H`81GXv*rml@Y>7-;%rU z12yjXaGpLO8stncHho6~v*H+YJ+r+wKWCN&>J*fz1r{dv@9sZ}j84$ z$T;p*zFjBg8?Jfc`Tf+7louL_ZG~3?%m0S|$OQod)-b^5+?h;$jnWYa&xl74@B5mG z_9_L}`3uG}57<}M1us{~DTrHCZXl@oO}YN2o;m(ggmgg%F)OB|uaiaHTQg?cdP5cJA69)BkGD%numKWv z_z@|?C(oag%%ehtMHXYi2WB1H?_vUB2x_G&M*#4-1Uz-wioqS-oOwvF(my1%Xdx#9 z$EpJX?^yBVu$ew&Gh@LBe7>}>FNkLMIZRd2__p{v+^U`$6cUcqv)y6jcI#1k`U`v zx=AIB5qK07mAZC3?Oc^i=?|sjp)$qk9Y5ST9IdZa9pFUc4b>!gHG!X5e^xZ9D#X+< zccn)8j5WG^-VY((`TVnmL3H6v1!`k;K$s?$h0{&@ni{b%jbcKQcW2pDN0B|^4m>~J zmAEPgtaIfl6eK-|&Wv8NXS=$aU-i2jzhM-gY`5ed@rLn@$D?<11MgP`v4d1o0f4*l ziNxqctH`cw9a40Bt|9r0PdhRkZ1ff8=8X}JOTDsn5=)D$o)E;Kw1}^}-l;!-7x^cCidl` zA{u!>a)&6aE{k(^EzG1Bv*o1x_R@KrisvhuiL>mKHa<^dQipb61*ftBYA-)Ry?ou8 z%QmHej7r2;UlkH+mXz^3Y{x;E&$w#!2uXZL3M?Fg5blho$0{A_ZJ33(YVH{p^pg(o z*?ZdNY(!hc&=#^=hmBCa3lX+EX4ca~z{Th^1+tD8E}`Qq&D~K3ce>*D?RV;KE|SJn zn@!DQ=jH6(xRJ?%SH+&XT{ip4@>n=04)POWq7L6fKWx3o#g3&j44W!qnUgGj5N0QF zYMq1CXv7q6uthDN3^?UaTnkoKpI zu^25n43=?KxS^fJ zX{8Me&soG3B$byjgHb7>#xzJKj*1Z+1oaJIT`D$U6;vj-K98QQa`U}Ofb!Hja(S&v zn-#XF`qa@x*~gp4;RFy`X6U9(D2*!UmFfB>YBV*x4{(@v0B0Z2&{mOV>C63hsgI6I z`M>RZ3!}FG0+SaNswd*<+DuT#Rw*i^hf`j6f{~Ak%8$SgLV_d@l{pH!z61xqUB6XK zf%nkg;o0(8c*-mUaF?GYwj-{Hr6>sMMm&TYhVK+_QEyet zz|eTn(XA|T;IoaY{sUzRYya3+q4eWF%Hr$ zq8(&I5d7G11d88<+o_Tls&z)PTq-(2p<;L(0vJNro(+q7si@w2yke>O#Dif?@$$EqtTS3~R<%HV@TgmgC*Mza3K z00E3T``FU=2m4 zS*$awxAUu<^o9O-R+PIj)WEs5Ak-j20{QFHj2huBs zhE^*Oo02USMW10lm{wPxy0m!c%uy<{CHf`MjG9(f zC|PJ;11`5LWMby-r?IfqMKik?j`pnfDFlA5CFXH|WCS4B4&K$}6?>0SS?wyby{a(P zDcMh8kQQ#{;!Y+Se6kilWAX5&T-DAFU*Bh%mRqmkYV2UoT5&HI%2}c|G9Rm0aL?%7 zy!s-|jJ^~VvWMGCkrYWgeH&gFihC-dV%l=hG4j=Gr`Y#`(^cv;G+s)sk^Dv(yF5UJ zbTOSI{gS`|Uu^nwEwXqZ%&jMAi@tQ`P%8qOA}GbxL88^^7RJVB_jzyoZY<4iJKEU^ zwb?QTLotf;6l-L+TIix&;lY0{4h10>Ob0hoYuopGJO%bPhc@GKo49>?1pFYMsRC^g zL55Cy_ASFhTbZi>+YROQ#gOobB@@UM`uo7(FxlLW$;#{~xQ7kn z(JCYp%=zV}vWh0F(-2b&bvN}ujaX{zq{a}>(KOZ;i+6ZHp?@WWZHho4NmOW+AbH6| z$GpwJT-%F~@)J*J#Y$RNY1~UCTG?@t)-|yS4o^Y^AOvFNPkSqLB>2lBXCJekWAnW6 z_}JLSpEFUjW#;KYXVGjwTnUFhhtt)U)>!7lo0&28J7s^=Rd*?gl9sb){&iz|)LTDx zmt0hb^rSQWsGzZSOPG8UB# z3P?`xBT$NE6J2N}T(~k;s@&5o+$?g!5$o)q8>Q@)&G(*7d)kvf70l+5+*_f|FZ8NO zRDRGCaP&C(u(>u+(X`jX)TTBw1|71yayYL!z=CCySBpO^AK3UU(mp9>dOqpkA!b<% z)KM`t(*jnYCCi5s$H4mOL!H=mo{>{yE_JQEL&gg!c1MoU{X=#XM0QDccWPlO*~>)XV7C6 zoU6kFbcDnn{~D8`tQ`8&5FFNV+ox*|siANkr_KV?<&2p#>Z6bFW}|v@7+?8lA4*Oi zFuqaoE;f;lO{YB*@68S01)|P!D;~;-oCsexvD8+obllT21TH2heQj{>Q?^>J09ink zDl7T;GmE2|c1`JSCn&J1GH`|o$Y?9o(JdF832Ma;C1e?=&*6g+h&Wi1=4pJ?!HqX2 z3zI^26ttkseCy#*hEa7^qMIdz!-1Q);eRTZNIGl}8%%TW}tOcbc<=#2% zdPmrB8`6eCp6?Ayc~+Mj`o_FOmjcXT^hY?RExMFIz2#NxLXJ6opl_^8bYXO&XSxPI z;{|yor$+8hovHnRF5&Ax;Nc;Qt=K4_L?Wz7eGsR|Gu%A$IaDvp&Y0&v3V<_e6*<@F zHA`OqmLgm_5aX65A&(G$A45waA}3r-f(I$-CujhHPykQ>ARr(B{_j3Ppx6C@zmHc1oIf3}#sBr`zqb|sanQeh{3h&F~5H^=$Ol z7x_D`ps(TjquhJP7aLu3oj++o|A*Xv$IH$Q{m7%}cO2}^|13cLH$Za$ zR}aHpLqqWzExdQ2ORqvGe^lI1&(uugw-=S||HP2yAJ%05A@ZM7@pst&IF4TBFaJO` zVYB(ao_~LBx4SqwQSev#Ag?c)ck~%vrL+FUMgCEj-!k5Rwi5ggYxBGD-rC%=ydyIB zn#})>$ZvuD|4FNV#@1HLn#RESKkf;?3BC1CeoqJp?%xyo-OB$z5PIv(`JNC5%D*S{ z?@XNkMw9*P+_8F9;QD_x*?%#2{xuQES2?hMN91=?{TGS6^(@4Hm&BPkZ;AZjTJk4r zh`-SqZw>O^4@3{RZ?XT;dH?E>_&1Q>+Oxe!hQ$91^6!Yhx5M}w$ZtKz-jDd8gm005 zkNE#J(6`1|WbYcekmxPw`&->#&CUKsz28!Jf46le`PUTwaku@ih2gDN)B7-pll^NB zzr*m)QTp%P0e=tCZw-UqC*J8h3je%c{nsl0)(nT}T@D;mysi8n9sRHNM1Q0G-EeC1CDFZw z|7W)SSCIewr1#rNy|3{9Dlhvtkl#w4;=HSDB>#Kl z|3!lJZ{WUFdVHT))B^8u|01vYH&EZo9Z|lkZK?2k)c>cZAZq*Yde1OWE7iq{9K%Qkm* zg9ZQuIROR$_{T}^zas35DQo`s2=MoXiBxj14VmES>&wi_%R?`a*xA|LqpL)huoISx`T( zbnSnFpqJOBJGnq3Z_mJRg_l0EI0H>C+SIEdHwmpt87W9Ah)3~%dD1@Ckqh4$nM6LK zY3?0*W9Pi*&GumQvDy(dX78Ox1AY_wtsd9*2FKYr)2z@*s~aUDb1kUcMTkn7p$gI% zl=NAlOEF;nR&8bo(oJ8`f^w6d>2C$nX+8k`uA^{a2&LZgj{|d~wDY>`f5Qx2ui6u1F2sHSfZXb|S<;=tA_%V;dk-h*P2X&%Buf@2~@t)WA z+khK{`o}#VN~48AP4r&nCevI+_F$Se;7}yg4GF=N0Q|P>fI3@~gij{5Z^u_#&<;uD zuu)Hzv|yV~-|*vyLra$S?CmMA)KTx?Y~$-80=hx4%P+$cE07bCRGob-=3*!k=e2EgkaS6H_IUVt#rJ*!~$<5M!W?dL5CWtBJ+gMPdpnp#M) z-hfvbmm};6)9X8Rd%`)hBA#8OQfEH^d+0J}v6}as@+d$0psCY4pcf{LRl5l9b-BKs ztfJT<<~H9Tlscng&rK%F$o>GsN~kAhR#wu46}ckUh(juLU$$e1u@7Acf+a0#n{060 zCz**uFmqe^BIQbMMvS_$mYt#kG`TT~i~O{_ZJ_!i$uaud548POZU@;|$q@WeDWT48 z;_gl3spq#xPgMBT% z6QFm7MH858W^yzBne0KgMV_X>RWU}XHla5i_b0g`tR!!UrxtyX-wq9G9{hu1N+6Gv z!d?O}yjX+z82QRZTZb}p)Uj}VuR87K$cxb+PcCh$d*H#;Wl`BJm!2|4 zG!SsLwRSIjt2f;YIFCcNmDn9(EQO=1VBqZ9BA6<&KC$z-!nC}8rymQ@Zw+_Dw{45sX!a&E8Wj zL+TA!4z|x59;cpZo`o8ELx!~YO0;W*w}GY}c5XupRqBAl@h4I#A8)o*jq#&E}Z z40`b!W8@x;VZMV+c$2K{)tX0HTCjWB0_f(uFq$4#Rk1t?q z4H}81Y-~_hzXPs!Q`bKB9WY&>D6N*3UVJ%6OF(@4POM9nU`LM|Ym#lm!e@*aT@0G6 z_<@E5$#OT6*x2n!185#9nzWQ`mizGixKCH%%7~yjv?mkqrV%^20KbPcy|QLa@A0?; zvU5t-XmX< zJa*btaMyo)56wVIg#uLQXRed(r32%K5= zQW|{9qx3Do6#qDD#Z+j;vxcOsd-hqAV<(F;QyHHvf0-5ovPHYh*3Ic;^-!S=O0|D3 z0!s>^Z`NF&rXPBx_tvixklyd1b$zB@I6nsXE2G+}dAfv>H zShjC2msU~vqd8SB=V+puSbJNSA<&@>+)_LzLr{X@(it{>+N?4~^V-g{>eIEbqs}E7 zVwq3%zM_W(?wzDtV>dg}Vjs%Fh|I}v&&zfl{IZ=aZgtxYk0KItQ%uMb#nnOR3)5{FmjpWg>U`w6tZ_DDtA%^63B;-WPo7IlQz#_pfgK&nEjSBYE(GR_>VfR@-W?{p@Q7yofHvmFJG05VL+bfwMp zDwLtAq}n77x}=(AYLC$4njMEI%B#|{Q|4|uq5nr6fKNu03& zck*_lmiA3QXMD!cj~J`nZu^X;@weT}2$lu?;6w{q8CppW39ZS5Wjsu~vm$?+tUjjG z0Wz5q@m_)U92%eAHjO@KuH4baVW)(?VeApK#>P_v5BmK@_Myhwn`0-J74U;5d;CpQ z8Z*5Djw0km4qwPU#PH;5@mHW^9rNKcDU}Hrf=1U9n8*O2Esb|Mty$znDAH9+>4b_- z(glGs{?ftm9$2v~8~tdiAO)Uo6pBZK^i(xA>oK$$3KEO#o0F?wJJ6d26u?b46Q==Q zrGuDNg>$$D#N7ECHIBDv`<^Wl#N)**V3` zKld0F_J~t8C?qJv4X+$6=jPnamE6AX0deuqA(~;%bpTaX;u_s!Z14(XM#5%Oe|xQo zWGVf8#rP#j&zft}{E|i@X_JJwL^qnlu??}Bx zJSR2e0TYY!){gfmXg8%`J5bVXeVsP$IKvsDA=ntS^J(uu2z|!M^MRCf^sBY)KH!-~ z7SRh_dLYs1pw``9XiEd!r;N0ABkmnYZ$d^i(#{cQXh{yS<| zPQcN214<;qdX?3ZHATN>{Ox4c2g3HL>93^|T=Ei=SP|MN|1h-3S0|_DG_OqA1WBFD zL|fBa!mGiYhfjOoARxSP&Z#r08hZ#xQD${pi0T$u@JDB{Vn#k2SG!k@-;70T{9)kI zx05jOYqB))>!B+eT5_vL~;aq(15 z4H{zUe4Pfrt!(k=(@TCFS9u1|u1IlwuzF((JZs&FifMS;{Yn4`1ZM)<(ka~QxySpT z#X)?~E@>7B0N@uW007~?7Y9XiYdb4rVFw3WhyQ`W|Edls|4tK%mF8tO=#afq_`f7yw37%=u~J3o)ZToDu@R_>V|b@227K z&yogdlU?}UB4BOxCD`(rgGUPw#GxKF2=saSHv^aRofvD2*MJOYbO=u_=F`R6FY2G9 z?2dF%@nT~#jfilmIZyf2qxezB*?#bk< zu?N*p5=;oSLpl`axxrr@fADf(4n8NFEO5#gVwYk-mt9yi%8*ic;|wJ0_Kzgu#sNq$ z9147HzD0?XI^7y7Xr>YMBG9jCO|Xgnil7LzI*>T5r$S@zaBnhIvN+YAnREAv91RY-rQD>s$u*KLeG~;4w z92i?)!_R|ivcDEaTE}lzZwTO=*&}W9l8h_su>THwiD)qsiQXSLtRA74u2L!6R4)vQ zy+-0NRyD^M? z%4??`ZY=FC!ku}N^q|kp_6Hkx@kJ{#7P3z+a;6A-`%s&Ax!4gzLpM%`@3*3Is)UNE z=7MzTEbX@vgAQ`_M)%GBU=MZ+k>TkCHxJq)`Ul|uOch8ley7kseYE!vVa5ITR1vhb zF)=q4GPbj_b^pIK(PZU*n|&69?sH0$VD2&K&}}eo_xV6W&gy!9EwybLRJFXk^7w&h zsR|-vO^7@G&uE`DIO5^>g}kj3gGffN`|W)gW_Pqc&b0Fe7KUEuo7o+^*RMNLHLMzk zKe@6a_9s`Mk|pN-I)&4cwdQ2eFb46=s+OQ=);zEPnC|MtkLEU!!P5QCIF?x$>LJUm0m&nM$455dO}+`P2H-96HxD zbDCjwa@nOh=JXQN^B;`snGi$SUk;LBDRSuzUv=_-}V@HAx!CIbxj3d)~#uZm7gI4Dxb8th6}>nEQhqi|_6QHdC6G(8^1-Dq8D zmu2!0l;&LNi$P|Glg?9bpjPppAJJPUT%wNBnoZ?_e5qoA%61lz1{vdC{>J&1X#?N* zqCeZB{L$o2uzmdbVN(h%(F%NmPn*godTxR7y4@EAUbh(-ioYt6=X%nv z=`p1V^7Zp#I&Bj^4Cj{7c#aaq*Rm=l_v18~8n*y^kjhk&D>s*A&*A}Hd zJ9XgIljIB8%TxBG?zsxeEVLIy50q9#a#jr@?z=>iqD9ZB8U0A4Sd@RE+;a61$$9z^ z_bj<_QKKk)%0Hiq>=xVjG11%_M1yfRAjZ`MeBs$St)mrO2>&CSQz=Kx`>YKvlUsEl<29&f=5)q5zqb9r8sl>7J zXFX@Pd=W8Z7mMlF;{x7~oqpwbWZJBRHkO6%a{iUx|B}TxLEO?||0q*`4fKCcZv|m~ zA!%V6Yoq^?$^HX6{-*$jFJfzDWbE*->XBAVti+E!zSa*00N{rS0PyqQ!~gf{p=j*n zZ1=xQ2;JlIf5PFHYUef^EXZHirFy{yb5kVqx{Mpz*Uxi5WjTF`;u@)dA-zmO!H-k;miv4k`KdH!=?(`rX~Y zN>$5V*$A zp#n%%bc=iKbEL+>LOAB|B_Q6OWO?XeLK|QsAm0!p!cYkyB0^I*D-i=cG^fSUlnqQ! zS+5nNIAg)y+*hN5}x+9i*Rr`%$-1EuV#lA@jp1_FTJla@0q!{Z+-G&!B z)N@EtM5QU6Hj7UmHuej?$px2jwr#e@o7Osaio9^dL>ON~4e@>7lYQ4pCeXZt!B4Rt zL;vi(ykn^E+krdIjSCf*o_ByK1$2vO>rzkx)Cw?Srm@?$0`V)PL1ZIXXQyy{UkVa8 zLZ6apQm8-GSMu0y_@0CNYc&>JGY0AK$m zk|jn$XapOEV7y@uV&+kt8Oue8tSkrqU->{anVh{AoUq<~I;3W0)a-!B7W? zBCk_S3)315j36ElJ|(p`&P36IcCDayrE+{+xsFA5p8T%(6tXq~tNw}&ZatZd-!i48 zwfIt-4o3X4kyXnXLXl0c6hBdxn#_2%g^i>yA5jplBJB~MU`v+asz;^Duw#{HM)1gl zbtkKe0_}yYKXK+a-lM`2@IY9e4)}+GY0qoz=r2a+iv3K1<@geXWpFN`@h$@GTzAec z=5fw!Xk%2ZmMm9=8W{*hV^N^m5~Yh(h=oQQM!+)gr-VpXVu>>xBpLUi{MKrIOAbhb<))7IejIM) z6dh%W-k;{swYi3Xr+|YcQbK4I6_^EC4VFGvh&X!~kc}bb8$X8T$QUqun^jWwO>pYZFFVuhR~3vFq7uGu(_%=}Qe)^0EZIP>*Ef6S+5XIKg6j=?EG~ z$7!%CWDV3hiwsy*`3>1zXV0I;*n87-e7&x9@Ze=dV%nRvIX@fqJ8!0wliLB$xHr9( zNn`R)yvNTMT!9_fv)XQY!6MNlhtVEne~+9x%!8c;NJO<1Z6TO$(6F#j*8}BJ2=$!kWfQN9XIb>tXDnjv{$*W zv_x-930_$1W@1K+N!$q@(AIc$a@Qu6`E@AYOh+5BX3+2?3$6!u7EaZao(1I@yBg8l zm82;xs!1n1C2DUK%UbW#<0_mkPNbHX$w zCuhh1!9&IWa8U4n=b_cA8x9*Rf2mYe>^^x6s6?gNG9oyog<}$h;Xgfvh|{?Q4iW^U z0I2}Z7;yh7Q-KO=lg-N{Cc(FeQ_bXPU#tah&|=;Iy-{dd#!pdw+_QFFbae%3P8$a_ z9i`X`g)QiTv`5JWW)nOx;4aiU90Kv=vj~X0jdSdB0@rHYW%P1}HBacztl}pJZ{q7i z0N0Bl+MyVj@QXn#b4h}x5)3H(QvY2lqz|_*8J=H~lE_{Pi_twC8q#MizRt~P*=W<* ztwn=D3&B{N=+Z&Ye3_~5O9ur;O{i`2MyALF#`Kj8Ee$BU+Q&$Uaz`#N{fd+XmSa}L zT#0>JjH)tr02CE*nP8d97#38oA?2t!zLr8L>|@5KzK_(U12EVZ$l9%kuEiENJ2>9C z5&Pq16D!uUaNG`|?-Kp3webA6ksD`0YwH}AxBv6t{39s7an#2y#Uc$*0l5|nJ%s`q zz6#lph2XdmdW2dKa)y*c4nC2EzlMTPTz(GpzRWU0|5$&K0S#5_aA{&&R-sEFzk81> zUy^wV(X1MJ#z{_ay#6B7s1&rhbcwPUQ?d!zW55$u2qlao__S1+u!(dbKO&j6wsu__ zR-^~B?3(HTs}YL*WT}9NR0YJ^!;{<{=(Sy+(5Qw+hW8(3y^f(@5i5J zTt7fLS$>5m1;84oY+MUPIbxtfnm*UUcz#bjBqynPbx7U|iFw2dC!Fu8`9Nuj8D_s_ zrNTbdeJo54eTQ)6*vJD@6mNQw+DUgmln{~NuIH6y@;DDU_JH8<+dG&RNIA~mBXMDnKbXNi5m{xm@YI^!d{ z4;>ie#}|B>D25j?(+m^EJRIacOJJ!|?fvV$|3=0S$J5v+m21plEBr$kVH*RA*R z`^p5Mzlik}o$q@q?;BU+%9-mnBYF!gHNB4PT{dfm9DiFK?TOk?LBw9CmN+-kj@Eo< z!^%Q9t=M9V!6tVV#0Kt3rCTc33P#(l!@O@9Ziw4vFZYco-07w?^y&#YCS%$yKOE{Gh~G9!UYdKrlU1>>2e zcp_gM`;dH^Cxeo&ji{1JR#7#^KxS|do1Oxo7H1oLk(gbqG(wl-VRK1o-c%>bh|Ra` zDu_jEAw{%Nn2NkZU+ki#X;WpiQcvN=AZi}b3P;)m(_M%gfd0M`m!f$B zTeBzfCC~x~LkadnP-OZCYt0*B)=~KNXZXr8(cxl4&{l}*Evi2JE_pWWF%6^v3E>RLq)^%mY_%4mG%&Men zkMg`#t|%WxIqAR)q6=uFhHP}{j#dmMd!^(BPn}BTQxe>Rle2I@MfCU#6Lat4dC;}> zIrJvMVw>ot&0b~*uA_pL(hue0SM2d#i|+9UMtS*cCzr|C=nN4J-Wc%0^MqfHtU%HE z?=q}F(mg}iuJNw=UJt=vp0DYeg60z0wq5oeJYrh(Uhc@SO)BfpGk7tlb?n+&WsAI5 z0UlN#(Ep-f|H)UNB&#UMPc3ciq;I6}r2qfXSJ0nqrx?2>ds6s^$G!g<7=Ost-va&P zBaQW+xc?w?8dr(`iDDVgNJ9U;DkOw0Eouri zojLG?Jm+kp1SC>}2qSF)um{|)V}=|%iI|EZbA2-qVV41zHe6xI)HdI_W>rGj^sKne zbNP3mRaGgLfOs@qA`O$Ycab56nzILa}#|-CtW9ZJ7Y&03rAa<|2H~3Ek7$cNQd0>T5;kF>CgA^k3Jr-5Vm-D#cyi6OAY&lJjc_v!Z9gUxV5iI$@LlSs9T z_2kZyE$AJDQbRxL%q3V@v^zO%4yaj#w3?x+>|XB+IsAr>T)&!0;JOYhe>|5Lxp#ot zIePt3C5l1MDjGHFm9QCiuEWeznP&2kU8hhPctzQ;97kMACgSeFMRnU<)2e=-?nrCv zB~o(*FM}hP3~Y%A<=V6|z}jel#G*6@v%#GIyFAtZQMkFQ zHmjb=12uu;Nzl}@U6Z#}aHUzzq;Twp8jU#J=WaH@Xwhe?=f9zyU@I>T zt#gWLCO7~9%T)jX%D*kKgR!HnvxA|rqps0^{e6F5?vB(W)Bm78Tx$Q*0mIW9KnHe0 zqqoMWPBn)k)grAZ%ev9U5(^knf`Fdx@@p)CLL#Rl@Z7l3H$WN z3<4tQ5Py(&tx~Yr1l2Ce{KhXV*CSS4)C$Z{A8fjO0?htj(Wse-;DYG+`Hy3m3+-&| zysxikj%XhazK&1OFKm&5T<6kx(7B(d&vX$UF}$zO2JU;K`GI41ih8tRg~gMvEcXp5 zaZ};lPLbM#m^FnquLP0aF~Xj@cgj8Ez7iR8{=e$6S7Sp}!bS|ljKs(!#_Qw=3uD2W z6TD2TK;c`Jz@0jGP0{txyu3(6MXyaR_w=L(S)A}2aCV&If4t^L1HZOWM~Z{hD2aI< zOf)soIfYtH1XGO9IX0a^BhHsuo${on7u>{`znR;S%Ewn;_O_~~QlzsvRRf5~O4ZD+ z3%)ri>3^5@AMPGqEOlUP>TK;~!Br)mH^PGiD@uh{<$AICWP0TR^An!b!w)``3_nVB zBkF(S^cH{DcV5VPj7EI)xqjY8`9kW6!Qu-LAOd~7+oMD^%1Gu4tUJ|Ieb?{?+e9f* zuw_-5GBuLWL8Qr-b>v1$;^x5D95i$Z(8qP@s`VcvDm@6#8}Y_iG^>v&;>?pbpBbaT z$@_H?++hPQ>7G9-Ij4$&`e=5nhvfnDMm3RTK&vD=$ybp}qdkPBU=*+jbz2Hi13Ii& zhg6&^IuEFY@~@cfZNy=&gqai$m5>M}mB$IFh^!?iyj5uzOEAqNv=UrhlG@-8@LONiED)`mmTkyAuPC;{B{jw{ zPF2sFptxS5*`q}ztRoB4+zML0l!=1HN=q{;JH7WhqD*{+$+P|7({G2@OG0e#Zahzf ze!p1n>FMCO1|`7!%?n6`|H=gQ87_t7zKpZdoR-n5e93Un;IS zV)#NiuGnsLb_a>ltEntJx-PP6s8Aw{9_0dP6w8^Pa09fV0qI(cpyV>MHW;W6*)J`R zpbs}qt~KyACyu8Y9K?pJMD-`09tRL2?sT7T94Fw+517K<_+C;bY;JuZBs+kqv5nk4 zg7-Z|LP&G?wi^UPgQsSvd0kvrzoMxGJhdg&OGxB}X77H1NS#IEw6Q_9plNoH z_S*x`*|wlJ8Uoqy&=ce!X_jmXaS7GN?}j{<+nsqBMdVV*QcfX)JabZ4P$u}`3pJEX zlGh_RX`r{{4Dw2j@>H+HB>I_MD zSrrFOfXew~JM1R4iRn*k>*jc{M5do6BwkGGRe9B)8E52a2Q@alO}BI#{$o8$n?Y&O zkCfJYD*o1ALg!ln7oK!tu3pMk{3($VSq{Z{Evo;>g3X4tfUX?sv09r?3P-KW7k|js zb?88nb?5=O^c%VI$&}s%mf3i3!LWV&BvPN z<&p_~qy3c%``0y(*ZbFoFO`QWAnD|-A?;h;OEE3D#*-S>bNmAM9*w9+;Sed+n(OTZ z=Espo)>cIySUU3FuUd*!9SBA&uUSwT%@L2W>33g%#m_|4#{@ zYk=k~nae(CCa78XZuNJ-6)uksoGf^mYreP1ES4Rb@6)3*pbtAA-nJh0&aOt=E86QB z8ZdD;CNycd9c*5w?dR>s?QR9PqA?r?_@-VmznDAF)GWay@6_9&pWn@oDFv#j_uI zoM!REe}-qJ$(zfb5Opi|Y&?nftUaL$*WX3s-}94o>~@sz>d#IwK|}ozW}>RfZ^#Z$ z%8{yBUQ57a4!VNi~oTk!rcA|+*bsIxv(0FTXR13mMK|+_BCgdIV z*vNKir3=#>>IY>HpL|Itj&2o7d(i3~>0QMcQzlk`)MI8#uHOw0v~qCW&wA$Yf6uIUA?k8cJ>*Aboa83S`vs6+KgK)S-fq9V*_Jb!Agyv*iW$#3)UzUte_4BtX$UzfNjz`A z?`>FLj3F1-S6pXF&Vsp&%xU3~W@m_MWEmwbkK#@TAjP+0$}5m9u%V zlFES=WGZzy6FwtGGZqV{6ied0675e&xD>9*aLHw+(z$M+cWb12kFrk13vN8$qdd7DGkZ~m(%i7 zS1Hz8TLrE*I*#HKR*L355S`gr${F>iS0O)^wj%TEhv$d@g}>GvhzQ^bkn4dp8&Pl_ zU#~h+UMDNW?=u)-I_ah;IA~$|8pua%j18^v6ffUxUFLE?uv2bhoYG^9W@b48=Z=|9tHVBg#^RG8=uMfGxm* z#8NmCHAK#6)oy9Yl)04*Z@8%00|#qVs+ExAyC$b}oVD6Yv6Olb; z(4Lsg=r!xa8Z%pAP&Oir@Zcr*tYl< zrVg?ufLW5UzCcNp{l^9B*$Z;>v*%T=RnFT1!AXM1 z{1-^j0#$G_Xu-(&zs6si z)c;*Ua4@#g|A&@fW^VU)Li&F&i+V!g|2YW%eI_9XzNa^oH`Kp20jmFO0x$rk(c}Fw zsWzDb03iSE>Vh&N|B@R>{wV(N|E~I9YRTIE*%R+QR)pZO7Az`i%|j0XHSd7ET+cgg z8AL#j657Zzmj6lKYV-S=C!xSdo``rY#;Q~iUf8Hd^y}qIk?{3#>Rtq95h3a)8$YB0 z1gTS3P|zK(2yM4~*bfmqY(WN}D8@9Tq`KS4+rt+JCz>?0IDZJbKJ(r?(|H`NB6>YL z7zUO>A*VZ*OyIZScYrVd+!Jhf-jTadzcM_Z5fCCp^dPs}#ETTyM8|hKKsl;6yGCSe zjNqYMq^x2kI<4Nf&sNvt?f1?N_*Fb#&+i(1%3ESRK;qw9kJGiSB96ikv;mX53;23^ z64Z^H&oN^E(N|sf4y^d2GkO$c_ZWG+cxO zeaS{i%vX;uqd**x_i8aDT+aXyLP+q9IO$2*0yybQ*hGF$7#)7|ik%8G)o5IeK(#x_ zGdw~TvCXK}j5?GFV8r?r%%P=}JP=ofi8*G{r}T8SiQ!)dZ7km%F8_HAlfJkSYv4o+yH;iFjhxWp(jz zLaC=@bOVk+cub*FeaauFSOJ+soQjMl2>9+Lh%6cb{y3uLt7tVB!^}V)Yxv|xGr$l) zKk^AE-IP^oT5AJbeey!umkkkPL=x}?R!9XgrYl~T#c3mw2Qe3utH8E-;JPA>Z13lSaWpmM&)@iC zi@1Ev2ZJOv%m_}H4Px5Uj@Ugi)hfqd@boF;s%BO!vu_T6LrV+85P&C&PrY}uttoR& zb=^;S`H<+)ajqgob0gpOgnWHsgkcO37uC;Q)1Vl@97oqfxB3n1<-#TC#X>B$+lxUc zHjAYAK*n|#9Z<_DwR~E7e!~HP@G}8wAIC;i(qN_R)$YX+iy9KQ(zm+ zYFhphQEPs6>Ty}Z=tM59R8QTyp@+49h;nbmHATM%{><^bWGw8JI!_Z8)^y6m99qnj z?k@Vqk}r-}3U(XmrenP%zQpT5MWEVKTqTHI)LYp z9qHU*2R5gyMNm1;~e1Mq!H%DZnsBz47pT6f|py zp%?^-cA)`q0!#GHBy*K?X3klExsvzmBxR$Wk45n_4LM|yc^5|$Sabb`lM8hbMZ$Vb zIu%|?FVjFBD9|7Oqc7uEWbZ37b5bNL$ye!Ce^ve*DE-!u{m!W7q;SA6<{>c zvJ!A3vcDp;J(k?g0!r7vafM@{O&otas-$0&@#a>fDb3_qU>-)M zLPEguv!Gy>Oi5ldJpLYUG+aTiMNqS0t58(z`D216e6kRwJ14E7qO#m?eWQJA z+^3Qd&I8pG%wa^Q9l;0PWZ=M_CO_7eF@QA0CN%LHpoODAyQV%7PLq;o(Hq|*$z9je z@MA)O`voU1pHi|68^2ePmDxg|p;Gt!Guznol!~>?Gk&5$oB}rT=Op5I3jUm1SpxxB zS9`%(-w|HIxn>l=aSOjS>HSdu>4<)&>}b1ZOIAGPQBAB3v1gt1nVr6Ln+v-9H=>-{ zFEw!6->B;7MQw|N4mIl!sSzm01jRfyeUh1aZ^M`KgpF@|0g-})%wWy^R`$;&u2*or zuD$fOE^ecmH$QINI%Sm;)20P+;VyP@bbyu1INy5`XS}@wGpl@(1s`|f_r>AlWH>`N zr-hdvTJGkuLUqsuudecrL}pB`r(`v4k2Bsx6K$txDI3U-f2R@>&3!zTqJxL>sE6kG zQJJ)tYo?rYdpPnO1jpd3`3noq*YbGaBG$y@f!d_m?+qi)tH`m`mM|4{*Hm@@Y`gzn zzJc|Dc$7sutL8+aj5?4{tgN-#FaF&p*g!WX!=|3)^KglZOZDy&dSVAP&p(?gX!qCm zY%t9;fR;ELBcUmFB~OF=kIc=QOpaa=+p}S0G`XcZvty9rP`ZWHEQNWpARZ^YAn03b`bNZBz{%^m=q-+pu>kVV-rP zDclh)*=B+KJoWr{1JA1D_x;#gXyd2DhppZ0MaKK`;;X+6Y^3*GCRb{?o3z|3AzHO? zPK7(B&!htBN1Zo8HCZ%kGp1>Ew|uo7eczv)OP3=)J5*PhwlWZCh@I3gIyrYSg)}K2 zyJAbv=C@j^PHsH578F5SCxHgrY|AA3Fp*ApAenrvA0|FI`jRI*Herj;*S5Zq0@Am9{0``B;*ZnXX%p7Wk*hA(ht(p8k!KK zuBb!hwHPZ8#=0*as$P7(TmBC9#5x$~u>QcjzXs0Vz?Pk@mARq&|38rT-{<^0yo;+K zQF>r?nM45r0O(-+>#F|~T>iDc_xJ0;%dY;XZMjR09oY>!1fS#Dx;G#(NfCW9vstqY zCdk`9Popf!v){jRE|Z+YzP*o$KE?CNe^yrphb|C3ZMnMcWY5av#z1_*Dx8_^kziiz zQo2`MEkA1yB~7{E%3HeA{IpI2+kctp^Pp2RX>-vM_hM_y5!0{}sgZxei69|2(sKAt zGn$AKHO6Jg$CXWC${GojoirHLv-;_Po;z$>IlJSh#NDbllEpt%?5y-gd%Es_ZlyNQ zjAgQ`Iu7f`kAZ@!gK@-tHmqjaHU&-##@(C6iatq26eQ`YazltZI2uQiE+3q_mt@TJ zWK_|H%!-^Asf|$ASB=~xmq^pDYF>yQKI=ZRS}a(2aE?xBR9D2sHPHH|RR?dK~4P9W6>( zUbWUuoBmwwS6$&$6jg`@rHwZ(F zB@hQ1Re=A>$VXd)5lbYSa2nv5Ulbp5P;^;2brUA~EL%~LeDnB>^_^ujV)gCLN+Jc8 zm^mVTY7rlr1Bp_)kI0%(B*SQ@8MbV^C|73OHRHX^1-U!6KmWeyWlK%awG7)_TJQFyB@_u(v24|E( zc26~Rn_$r+G6+qb1Y(e`FzRJKoMlSv&MgiyCT;&)pN#X`zKKle(aWTJ`&vw9PT=%r zEBQL$*HLz;>o&%LY7rp6sanv+n&Co+;#xtm9 zGojB8OEeLs4qgV5PG%89(;yIZgBe4`JIUMN?O%5LsC!7Q2-Q@DZLZa*wpOcmpKD7o-JsCz^OU)|icHW@cz+c3NU3U3uQ3wrmR~J#BZqS!-X9peouwp?h~-OB+8LszKe zhIh0z?GCZ1cfoG8ON0MBrch9mU??n|i|6eFl8z_(czi#v`!6E-7mX#4s%S>|LnIaL z{=L%J*cuuCz0&+2=xVX=WzJvqzWV~Enj8F_)ZV2Q3Ex{)bpWOq{QM@KQbofcPXzwGt_qOq3 z94Jv79BF{?Ch=P+p7=ySaY09$XwalNy6y!mi4y*cE6S?ysKA^(9jN;WQG8Sk?R)p2 zG5d2+q}oVk;i_n@YONtTJC2A$ar^!GsdpBFBiA%-%IZPv)HBEe$Mz3+aRyj#s&Rsh z%F8e_j$yA5bWvBMqfJ9zLP~0>VaL0l1zB$Rns;HyNeW|?ozQZW=+6wnxDAh}&RKhP zH31#BK+$|?0b7s*S__CS#8B)Q^SWVCv2(Ug*PwgdZ@lR2OP;aYAGfI7d7;x})f&0W zZl_ZbU)*S+ZerdP=JB9Yu&U`U^c>NHq8pGIZ>yq1?pi4NPJZ*q>fgiC^7G2e(@0>L%iIzg}k?sF6$0vr} z2QQ=aeHS;`_62zu3w1$JYF(ZkT}KNAL#=47ZL7)c;Gru*;_-RjSyD+BSh7q`;Fe94cokUKC10t_{U(dLreQoYg;exu2i zaA`_u7WJ6&sNyGJ8w@Q3hCKcKCUxS0_Eg=tY^r&Ph<;EI=7zbGAqVSnS)gtwiJSPf z)kV=F2|*5{K@OySive{_GRb@RIpxh6fFrLzIHsh5ViT?Q7mTn=b!A zQLcid>Y0%xT^pJ8oVl#Vrkq)Whbrx5uRTLgEct%Jzm)ISLsGw4;GoI%GvH1FoALgF z$oxg~u7j10|A2c~qcmF%+h3pJPs0}?!`nxapw-~*=f>C<(6Rfdw5>IUaCc6#?_eR6 zFAFrst{=DMHya@1=;3WMT+r>WiQK3YHioG$`_RF@D*iV7m{4Q;b;Hxlm6rl;oHp^?*=C;> zQ(;-&>YJiKmilNGgHRE9X*l?KoJ1bj2fT?CVdRh~NxEd~lBkqstv)RW7+IzNhqbQ^ zj%!KM6*Dti%#y{-*kW1CvY46C7Be$5Gc&VfvBk_x7R$2q+H+@jcJ921``*TML`HP< zk5hdzvob5cs{AVNKE@^7P66u9=CV$qOPkeK>qMXo0=&FPONPB?dOvWXyzGLnx0}#U zD*8*6Oic-&mfk^LDI8);cyw_A9h;FfUCiUJ*ON59guajQtf{0tr0XH$3_!J<2W~y@~UXL zQyo!?F!eeje9P-#LA0!HgVZ5VQH79-tc-8V=K12$r`44E@O*%S z1Zc4k%7~$&6FaPbfKF_SC<~d0D$9YWZQFmyZ&(fx3&ppmj!axBbevl$dqTPh0RXd! zKLVio1MKw(b#n6;#k5aPFCO`6GhQSk?_GGzAL=7hXe7qM1#&Zw_ow%;3>WP6ddy#( zl;?jS#;v+RZMuhB{5<1!a$f$J-OX`7{rx!A5VH9AG>wt!rW3y;yiDe*b=NU0>mc0p zl2wyn5v{(}aCnkN$+E>uG?r&^xo%h~4N|vk;!(!f_1RacWa6>IyJuTZx7*Iawd1*a z1zVGUMPKeJip%IkH@t`5XG!@L|9+n+KcO%84*M(aO3zcDSx| zcK%)TG<5QbXhIDZe9?utnSM(`*bBh%+-%&;L;TG0pt56v55CaOVr8OlaWoB)lFB{| zB8ETa$w4~gq8hLBX%}BK}?Xw99 zU-vq^w>%CaDX=u-o{?>FR(247R~^!Q4+V__8GEw9reO@ zy(VC5ic!`TV!luK8sCmQQEE6YsHW&a&fpT$vRGFm-6AV0AK2xuembe6tEFiF9RM$& z`=xE!vvs=1BHJw!1;Nzx2t)h$wNI$Q!XexCg1r{m47{TAcA`nOZNA~Qp)W0IuqL1i zzgcPVv@gUxxdWYxLGh!P?p8lX(F*D#AwSVAMB0P$M#?K332}H6YiKaiwWf96HNMz0 z>;m7JbdXW+DS)rsppx*Tbqu=C1Om zuT6X5kE;L^W@Kn&=y&jc>=l?v{WA#^9I%{IF#)!U8#tT%{j4Dx%U|$6$pfG9=KAA2 z3wX{DlpF*E@1LGwWNXS`V_!bx)oKWRUZbCc0MZ@I;1eec;DbU^!vY(sExS$K7HY0Mpi?q8$+ zbE&h~KbWbDVm|07FfIe)^PBLteO+$6a$Xks&gI=+hB$ozPN81@LdFN){FJ);qQ?FH z99t-LZY#!JF<#~*w!s=tHpN(c7w&mJG!@3I4XR{TwNIpJ>?12IinQ_3yma2UhA50M z!@@g{L=ki}&?aGXpGM!6(1{T{ncdU(7ng-sAOS&oQ-Ha2+^nwThXi@F_T1F{x-e6n z{mAp$z%AI6ZMC8ba78@T^i#2gHj_9Z^zoo-X+!K5TJJj*7U;Z#ADVUCfsOTr{e#6p zc?)^0g_TY=h5$v+kU*48r!kwCXG(J+GnDTL1(+iCyVTp(E7p3WrR$B09=&x1aPqF&TC7PtbB7?=lD$-c8O_DHl> zoFe!>xwjHk6Hc>sMRYyVM2e3rCK)J|i#JN(A6v_vlD($mH?sCIR9H~O1@Mck9bAu5Xu#pO#fr9OipZ*q zpckP<64p!6Pw6`lND<~0YTykb3Oe>)6)Pnm45gKWT&_CCYLyKl{6rWEFzM|oocz%V zD%7%RGqWhepbx(2#~W5Z_s$lG6|S0Px<8&Pk=cG>>#+)$nrxX4j@0}?w-z#zNxiVQ zQWsxzHoVEJ|MH5axav`_d6DoDd3jIS$@-OUIw?b}ga?(>~k! ziL`FZG~G46`Yo+pS<9?!)w$k03D#2+>)IgoGkqWkpXYa2L_enf)KKbzhwQ-RW-~{c29^YW*r+&L+UOg)|&J=lV+m zIe7s5*jSaP{?btYv}enuH|u8Gq*iAtoRZNX$+wb``8S?&x-7V?<*<6nS+%g*MG5#a zJ>5}$-T8Jc={me=-8M($Y5ui$=2=K>$pbmz> zWcI_2aX}Uo1SA;95Amkc z1Z%mkEB<(%5H=pTqM?&g=r<1tIvLEi=^FjrPyxK4GR|QwO30q+2*4N7M5@WLh$10;-<`Ap2lbx7(Oe>M}il8 zn&GE1UKMX(XL;j1nrQ`gXYH~H*B0Hs-pi3LQP=%v;5^K-a+qu z@alBq<3H^4d%=>qcf~#ow9g$ddi=9}T>o#2jo%BH-|{E>EU1pz0=q)GZZXxS*l9Ue z@pXe}l~h_uFxsXdDxpRQc>$k>dN`T2(H4sn;XaU#*zrwxJ-929ojlcVS#!n9^|nz= zsX(bbO)cPk!l4mLC_G->Bo#1^7Qsawv$nEL2tpMw^4l)a=oLYvSSBBr_zo3Bz)feL z9Klc+j;M;TVmu$Q2cJD;nmV&_aun%|LDpirXx9ga0r)_UovR$s#}pz5dfz#Crp4HI zvG3vP>-!>I%JFT`Geetb%o!eiZdn9Am%&O+124HbfGyQMJ;tD)LzYG>~7<; zdqqEtXHD-=dFpmz$ftAVz)!`JWv3RgCb2(cRWabQt+#KDTC^(Nyw#BhxCd)e!zDf>FB8Gud9!8 z^A?%7u+1iUpD}fg2<2 z1YR?Xiu%KZsr8Bz_fkdFn#e`lGEAIU7;^_ljO*^3@fi2WpjOcK4QSvC)n7YB64|*e zkaOFIIfk>JMw$LPw1Zd^Uj0Z>foQe$kF50Pr7YIJgg&Fc5xe~Lvi6Up^ylYM|J&yo z|BWif#>Cc{;g2EyXmI+=h4b$b-no|2ErB7)4=Dc{tpDpD|LX{%=D-#nMh^p=(Evja36N<^=zl%lpN#j){%HPN{uH2sK269EG9h#x z(Y=DNfl+-&kAVjepgyv>teGcpIj&c|JhpCNC8LJ`SnF7c6s)Dm)%c3$a6rr;p?8b? z9=|s*^d}^Q%`Tt!#6~=@+qbEwe>v8@*Wgb@iZIGC>F^9j-l{)<++-4SCuD%X8)RaV zTPXo07y`h8A#Mssu#i!jcah`sw>I^toE|yd9Y_oNX$2uUs#^Y(Ve`H$>i3pCMvSUJNn(C^fMW)l8in~2fe z#M;Kf%+}7)h`XCnCTkmK?>7Zs`z%!3 zJWup;vB4F-Ix)}k4QT-CAsN@ovKM!>LM-|64YN>FB^jMM! z3=Y{-suvCevheyxMP{vHT$7jq!3|0(P}r{ZLx`B7-7v=E&m=eed=~BsH}H;HoHa?g zpMwCfO>-TW%XQ8Pp*BR4uw2%>_9_{3*~^uk3+nCf)uso!Fq=9Kg3a7%J-K>soS0mn z28**@w8Lv#%t&Hb-b3#{(;bxctzD`T(X)Tq?UhatwXzk6O9YGg~0N4!9r)h~WQP#s5siLk*mMzvWK~-q1b+Zrz~0SN9lx#s&mLC3(7iB5*to zxvTRMUL#N0*V+yrN>4V=z}HlfqKU5Ac>iS@{C(nv&Z2!%?SnOc>CQDLGLl&-BcHkl zZ84nQ@rg>wwFF`mlao6$DkZYN=+pJbG}*P5FJ63Ox8I1)uN1B|&8dFYMW6dtvj%+$ zvwHCole_RuSv~Iu;N#%y8q*Sr?!QRiX^1l=KFf|{1ZSf@>fu0aFzR$ZA5An6;~+pe zG0XXDn6gBf;L%thgMB61#{bbfKY$OSKBrMM5AKep7qa9%F)FK_WW_4@HQr$>?21(k z?B`o1&mK`ozr4Ss(7EWs4M8|PR$HYOvp%Wv)wplXOJ9-n9ykOWVcCs#9Hep@ytfp} zMD&hAj!@Ajr9m{F=;v6XWqTEJ*en;~K*4u}@s{FSx;Ts{L+GM7bN3oKG&cftnE6lX z_=MP>q6r}ShQu^ONR1`*%QUo5C=S~)O<|F~4kwXJGi8*TgT)Df0;nq^NtU=a>C%o7 zl(=ty^h%O*F9zfP*b0&rOEIK3pjCQhrS3XnaA@X9E%OHZpoc9=Q~z!8JL4}xtPo{f z2!Yw#GFc}Si}SJDA|g<$LwHI3qOb0&1R)q;WW5T62a6_F4w8X5#4;W!4R$xx+w8fStXg8ii?BQTH(&FkMtnqp)?Xwrsf5^W8~qvAKQA zLefryN5Itx1Z51Mq%hrCYA@@oAH*W(1G{Ilnr7!{I;wW+PfO8ZV3klsL!&CquQJnl%s)}G&x->9{r2DQH zzhw!}fP5KX#wG1dR51&)BDSJ|yYS6z$DU1zOIp103*}TSN3K?JAZ+#~p8#1Q2Metc z&HBL;LQOTRF}NnLbOUJ*eAu>=U4~JIntqB1a$1m|8%2IUudEBbXoci+ZvTPoVUW}; z*^Estl%9Z7Bgf;e*0;JG4RLN~#)D4qEPZ+T>y(Xzi(aESl4CwWzO$LDFT5QACgh7u z5m5La4U%mIsZCj(!Q?*M5l0|O>ph+jH2HvEVKyvl7b`c$gdYG(+B%2NBquc1!&fM4 zIb(lGe5?0zCt+b$8LJ`?i-@Z^rE9(id$gRgqG2;3V6TNg8)K;?i}%CN!{&Up&(w>Y zip;0ZwQXVA2i#x9Ud1?ZayfL+7aODUzq|}VS~0qN>T)w zcs3@JsXeF+EczdJ&{M?`z2I;DK-iUQpnkbPMq&<~j{UX@vFtQ{Se*zQb+wK7{B zD!y8zDieRs& z${bQ9KLP#Kz`fjQn@IS1^GDb$D}t{d_da#%m3H{p*c0CbF;_UkS(#~FfFsy%(m_hKX&FUa2P86 z@Ndz)s}eh#9nM&*KI!(m5wPT=9waa=k)XNpi<)H~=K%l(5B3{mI|HAdSM6dt)`z#- zv?tLNI5=Bd#hl<}Xc&-aMAfEEjE!xfD}wKoBvYP7e0KJjwLq)K*R}0s%K{ff%fFc( zl)iXX4AMhj#X7PXtz6U|bqd5q4$eW>#N~vbui`VA=C_(13;Wy>1m&IYEhoq?2v^hduM1GvA zi&suBx}!7&UB#?I-HP=Ukt6zbQ_&t);FW@aN1y3?6V^_rST&-2$W~p-Q?%Td3bAK? z)3LH>e;%rN0HgZ8L;yua*!&Akxn02p9IFXr*C^W3tXpNiHsMwsk(~=$68|)s`V$P| zLj7c~XkfW~iVE4`QK@o&5J04;nGvT3sx2;?Mva<#%W_iOtDEzHHu|z(-Z^e?8>g_g z{_;yr_^O121SBmhRPNhBDdqyAeZJ^?uKo1dz!%4RVzvAhlDn3<_2O(y2-nbU%9|kH zB)u;5O3R!bk37X@mM$fU5}kn_GzkZnG*QYFGmPFEMui$){yivy{kw5l6Ek~WYwXs0 zgH?^g%8*hndrJ(*P^{j~r1BM2i=Ifk){FA5dAo}*#KSpv>krYEC~u7Or%9Y^9^>M+ zaj?xL`jOe)#l(>!HJu#WsGBuvf#&c7f{JAPop5Ugu@J_Y6Rj==Di-aRmTR8b1IY}R zx=B7=GE!Igi+n`a#;#i$xzn>+)U!(TrBO_pYf1Z!~$f&V0?+BHH=kzSqppGIHN(mQN z3*--8YAWv&071Q`&b4ibEoR=MCI$XDprr(@+J)S~anrJdeWo@%P>SEMx=d46WK>T6QW z`?**OpTrOHRi8>WDeX~;q-u-A2*e5`W-Bn@V#NF<@*R6(7UrNvS0Ko&SM81^)MfOex1@M8b!lo&1o zsY;KDFSoCL=L6@5t-spMFMSdQfqzLl)h|VkfS6(YV(@OU zd^O})Dz8k2nmXLq2Q9AAJxgSOlJH&POwU^&}Tn$>?rAQ%76vksRP_nOHQiA~cn+Bdqu^`PLyJXkIPN6|-uXJpp) z8Nk*e6uGjr=ODg=r(m2p1C)-JIr*0XN|-<+6b+i^5Q-%yrr zB@Q3Zigk!kx(A)(abZ*)f$dsD3mIsFNBoQp()$ny!n$#Qp;)jcZMG)fpk?zsUxZk| zXZu}XLQ7i{!UoBe=kfc;gV(CjlO(m7RGt~XsZ zYlh`Z?W*tvMz*wz{9F10MN8+?X$MdpVJVFtU&HGB`4+r-BI5TYx_QMv2Fj?JMGz!# z2zn@4Bw341%yS97;EkdAr2$r`E&62M0UNExT%H^i!LX|3t?JQ~luA2$kW8aSDg75} zVXhrldAmP>2O!@&Cj%TG?bdp)EFEuA`rCh1$oo^JJ%vgrKIp-Nk9}u{>5+dz7$^}e zI2%le2^wzVinl=InTq!uG{Avk6pBAt5LSfJId}{%2{}5tQkc?%a-nxsr8GvyE z;&Gsqyr8n$wzOsKW&in-{$xnlsTXn1lb8Wbd%a4;z2!B5G!a<``{lcK_CA-pTC}Zd{V8xka8kbK+FWkj z7-Hj=7c!tbtN$hA?WN_o=ISSWa;UwLKsnm^ufhP0DSG@!6jMHCNj3*dZHkt4>m!aY z2@|_=n>ed=ROn%Bjq~Ls9Pf1uKMl3gjS?f;x05@%h{Q?Y^F0?&&KYvUS~QN_u+lHr zWt%QQ4MkT(QAcVUIs+t&%HHM4sm+TV$w;H;&l^MUw9A2jsMk$C(H*ynTvz*D6?kb58b8PfOuKX{UVgDd+C zVeM+bN?I2v|NBbX)xg>XNHO!@P}Ogo<+uE)(4+XqjP#Wl0dgiw`87~;L)T#k>=H5q z0H#7i?&$@+1)ALiQ>IR95vCNbV#MGrsl?VTY3WVeY47WR-wsey!wPd|ACTG?a(s6&w}!l?rN=dJ^F}T@8V}Doqq5CCFSFN-FPEOKP{F*^8n!I361& zOz<+PA7YdaGfLDvoXS6(>ktW1isCyyCM-SY_V^>767@>lL>rt1vKF42L&V|hd7yAI zIIdMZ2|J{f33oZ}Q*5WMkd}BU#}C+2B=gov335TOlNWO@kjKE;Yy-vbM%!NS&)=e) zMJ9~7v9f)ws9B+Jky%*4KZk&yIag6iS_P6RlO=0?`rT5rC_`p@VQcWx zP&wgHkEN!tPXL)?GLA54BT`~RgsG%3r)%mep4j?^Rb#b+>Y znwJ1xLbcEkhUzqQj5@L`7LjPY?&rzn=U>duy&Gk`zJjNi8}_6c|)m3swO#)A9o1V>WKKlOQ%%Tpv=uVXU*=y zkTPRn`?ZRr$`oIhD-{K>ZTbia0K87{b|O<%7*f0e8d}ay*HW&df=&I+;WXfEM(1Gl zTwmeg)Zb-xPCsB&n+BOF?dAgzWcu6qvgo*NBA)V9J1gMvxj*!g)>?!JYMw5DX#kYA zk!$GH8j!ha>kIfmN4FI?1hjbZza{h~(rg={d_F~IQxvO9leI^Q8PxuTr-C@{mp|)C za24r$vh28c4pk98%3HpFd_h3?OjIa-K^Y5>STa*IsJh#VVY3F?j@PD6J?Qv^H-|C! zjBzM-2{=6!=}!HQxtvdqadqM_!)zKe_-T(z`B1j!G=%f)KIP}`2Hs`(Zuh8x-Rm`x zmsN8({Iy@u+!|NV-cNpy{ZTSRqnPg>seOi5Sko$Ulyf+*;VsKn6V&2&GU>&F^uapL2Wl-`c! zL4!@#v?zlNc$%|zaHxdc^wGM0xm%dcfQU^wLQF)(|UOFynwiUss{w|x?zq>s;4^y73RwM`tHE0!e@S}mj1F%AI;@HPGjC|(kC^V14 z&fE;?;uZfwG1_B%a{7dWMP-j8Ap@0d{DaQ-u6F`;4T2tipW!WIm!hw-{Ry06_mZ~X zfx3*QYZ`F;;e(gcb&;#QMNTu_g)#+VzB4X136xzLg;X+>v}eSsjT#NMWex#K`;{K!XB>6}7yI<3()xMygY@DUqMzppDQdu8ThL%{AjlPFmxtYeK)qNjpXHupAC(5pB z;sX>njUm7r059{CY0i+Gw_r z?i3=s1D+aYVNI2xBrTw8LBLwMgh9_A5ZIr=(-ADq;&F$#`aZEYnJmc~aaOrTcd>hH zT_V?)p9*F5jU2+4N|V${jA9a*?y+KKsf>X|NOeWpv?AVQ@k5We(hg|#R{-S#3?8{o z&__rTE(Z3vLOHal4>#enE+waO${O+Q^hqI%^>!y4n564SKRc_2VfXn`ts#kYjQQwN zBUkImY35BFvh+%F-yTj}#y5_z^eh=WtN2j9;bU0}&Ga-K$N%aR;5QHGm)y1wr4ET= z3IyN679A4cUqK%%uMR|7cj^;h575+CmABFqgl+M~uKjV(s)C}U3QMeKA#!5Yi!R?fFjds7ho8@L;N+W00FGGjt-pg97pgFl=k@iw?G^rRW*Exo;2Lt&N z0SQ*k6Ii+*^^idj!e6_us73kbFKJ#@&> zXIqiaXBN-8P)%xIh;vo11HA}9S+9`ozLnsbSou%Czu26~IO)}MY{hrIZ0ejf&M&N> zG-OrY@iqn|I7L+l--d5y>V~w1qs_WmbiuTLXEU9U!po>Q%zX%swNvgS zJGZZH?4x6>zsz<1sA2Qt(kI`wFIinH1Z#?LA`Y{8-jjgEW#x1-_LJV~#qNULindl? zHoJPDJFWxf6(*KZUW&QP8CQoe-lJEBW`{9%AoRiWp$ziP*0fr;@8VLeud@%3y{m`R zesT!jrN{>65p_+hY))QX}( zP^@zbO<S`w=kITQrv5kt;B5dIFUK& z#`V!-pg#=uwzH}`WELLVi&f3evt^0yv(;(_j$d?`LkRq?E7kif)&&Hw<=n)n_6(En zs7I4-D!&E1Y1lzkT(vE%X>fYTYNCaiX^U2@_U?njAi;AEH2LJgJ|R`zeD;Mw#>sIQ zmzfjc=O*1o)}VuFXuc!M=jeu_`C`AwlhM$1T1QsGmt%suH|&4TgklSaxIVx=+cbC( z5QYClCNwbpgOc;F*Wig+u0x>B|j@gm26Mo4%dXNUmfGo`2rkGp?s- z8UwQ_qhMm9Z6H<+$JQLCXu${6@z_)NIr~kBCDMq*mh!2y80y6ogk`3MWrlzh(rpg8opC5Ytz|O z)U=>Ec5X^6Z|l}EQfdd=g%yI?gfa2IT>Ir{ny_$?4lx{?UUmga{f<+58j2(Ydgi5? zYpQmFQ*G>Y0&g7!s>7Z>Mj^5vr2Byp`^fWsDlJ#`Y$9hgg${pUr4TDnL0FqP>kYP1 zFO?hGE+Q>vTb6Az#T&(VY5);VwsdFf(@_Uj$UB{_WUMD708zj;92Qa#(#}5_dVFb+ zwbv_DXNKpn`cit;4quEggc{+}>wX<)cR~ByW8?lO;HqLlt+es-eLbt_VBm&$Ab?+z zCn%oUCO|yDaERR}=kC&H#71{qY7b}E$!uI&c&GG1?fNmI_96(s!V?6dL;TaUHZSHv zt&a-}x;jG+k!vXn+b7Ao@rKg@;1}&0Va?|&d9+n_j5bi9 zbm7OiOjnp)w zaACAxe&TVD?HHLhjxfX(JLSs%bVVPni+!=&DU?*eHxOmlD8%-RzW2>gX!pQK28~f! zR~z=s6%K*0$&fdjzDHxN$>-`~lgb=cB^~&B#-+(NS2j5>3BoQ$)~RY141 zM6-6QV3&>B~ViYIc;nqN75GtJH&FyD+JCkbiXG ziC=PNWnb$>2IW&oP-zl!xl3XyYBb=>{{X3e*Eks-J|A9zsE#wxuVw!eKJ5g&K@*6r z{8fDu703J=S_yi54IkMNL94CD=X1G=6)B-F_l}0F-`8@?OMQJDkJhzTO4%ge@VVMR zKm9q6n$teD&7J!_ctCx?W8;}vbqF`QWX)zt($ej4rU?rMv%o@kfI%<7>LBUHy6`d1 zzj@plG9a zGL2%mzl;s1dQlu+oiSb{Zrp)Jdc*=#R;CNAgFa6)iq(d1qCxpc)bm!paBuU|3V+TK z@z}?5i^d~lMQN-3+E7+|xe6O^NnG3ug zjo*P52m#_5^8X17070$4gNA$Qdi-pRn-T~Yz2%`SyChujFho#> zBf6j0&hd=Q{zYu>kEtspyE5UZ`QqV2xq0ADz|E zLtXpSZ6z)$^kDN@kloFrQI=Kw2reA2*mcvyKj>;N6sLYlp@d1|S93e^7mL_2t#xwN zQ|`qex7~fJFH5K5(o1w(n?C)lxRzo^^JknW%Ge|89H?7qpm+aAa6@YYLzBM_*+sFF z@<8Vfyz&TFjZUg>Q{ROR=jui0dT4G2-U2LN2)vJJj|)`GPbf6vs~}+ackG z&@PWIGZa-{uzn_R6JDM10AW~$w@l%k*4{^3h+0o>k>pIzlDYT;z3LXf{uOS|8^D(H zCXF7J(wlbb%7d!2HTE?4VDm;~&)S&1>R_xw%Rb|*&NT$%v!Va?1jlSJBzL?RBP>f0 zY8F80${ZKgJ^69aZfz6d^~+|Dyvy1P;yy84AddOlMf0UmIHvTTqNrR#b8b~hJ+T@glH=U>%GXVdd@pV26Q5DE(Z z_Re?ic1KaCKe-)^6wbO-eC5%73GtKl!e`i&p%XUlQp@`KzJ!{-?ptD}K^17*HRp(` z$$j=!JQ+;z=W;><5jBUUI?j%oMRSQ?5ml^AcFlxL>6_9&s+J=tK9G1(-82`7#DRK6lM_6!rg{#^Mnxk@qWC7qa&U|E;t3J~ z`0M#9mu!60Z%9heEd ztD}b-QDrlNlh}x0#z&|#cTa)G2J*|iwYfb5#?UF=i}*?^oci46%H-?5fc>+nS41#t zo`7>J3fQ;y=|5p=BLjN_LknvlQUCu#RS++z0Gwe%kKWcwlrJ%pN8f9@a@FPam=I#nm7hHsOd5!1OF|VxH7`DU4~nlY=}WP}n??c~srMug06)HlLZWs+C9Z0gP8*&_!Pj zMORNEFY2jWAtQP`X!Not>q|eC116g;o(o-W(H=I89R52bezP4Y^X90D+WUaM5y=%J zfwHKJH$ZL!a}851=buf$5@Ub~KB7aIJpH-cn0(WsY3?4mA(Fl)uB4~9ePc1-6= zxLvH{s+Lw=G4as)))e*Mye_oOL36IXD)7Gj)QXxGz}6O2KKlV#9;0fJUld{U$Pa&%pr|!Amuz09lv`Ux$om3oiIJ%KL#o53}xf%d7bcl{J^-wBk$sZ-rXp{ zhzSorw{1a~=y!#Go(9 zTJgG&NUStBS2B&V!S!=P7;lGVnXemX2eSp_yIy~6XXkU*Naa!py8Estln4@rm19M+ zyyZuv35vCto$X0+H~?=#23$s72^y=V^idGIg5`A(Q>$D zC1E`;a=D`3r+8a-v6`-u)D?^w)FEoND>*3$J`Ba3;n!gF2ni5QQZuLBM+)X#HJJu3V_}r}j4414GWx~WaO42j^ z{sAszH*v`mGKPqq4#}g|#%P(eqhO!tzItso4xYYr5QVT1HZ;Xocrlht3KJ4p7dDq- zMyCNjx*8U-u2)ZgVdb@WzTN}GqHO(RJv?SS5G(fdj|CDn7&;Ae|#g5bX0 z{R}OQj~_=K7G9D5;R?SSDE4^(P@O>H8%IJA5Z3>X-1O(o_TNnuHUHXZeW9ssx892B z`&dJ~8)6JXOQ=AOz`BP-=ZR-!=swQMxDr4=Dq-xGXX;pbhrQ>6+*|a^W^PIE@)0CX8 zfb&)(=DEOAcR`e~4l z#N`FuKv!jqT>H(^v`DfNcn#Fu5cp(vM>uEi1VW3@qO84&{Y-Gb5(4k-(n?()ShaM` zP3h6EBmNcj5gGw2s|vmovP}CxdXAh{-C5qQuXL1=x}kX_Kcn9ds~Zk_-mlZWWMGeY zM|zBEq6sMw{?!wQmU2YG{MEzt<%^lmhNgPor#TT@5m(ssdmN>#{od>sS0)Z;%oI^~Wo8uPx465^h=w;?H2&$=Szb z@c11CdlvWK9&A!0lm*&rn_?@HY+aVaqKQ#2b8m@|`|y)a{XgIq8mrm3jNH#Ym>aifTk;+g)L+}u0Q8Py_(h_Q3j zyWaH6FKyY!6)3thG09Zp1kOa04|`piPy4@of3p0DT`^eZt#c&3gxrATl-;eiGpY#5 zMA}UDY+j493_?=q3jNGCE_<}A|4#I2BKVY|3QZO?hXamAEzaKA@v|GP{b|T6;9EbmcTMRY;`fQ_Oq-dQJX(ct_PFv$n+0UQ zLH7v$E5kH(hWoC2oyx)+0-1Td=_?tkHA~Uy%-F93ZSMD(8K8Dv>ZsHW>ZPH%ETiAQ zg1-=E;&bF+b0w!EPPhz*Fq&`*<~BdMKftgo^XC*=Mqoi8{hjfy|~$(2oP!F3K0AA1EWUjpJ%T<%ZOTm=S`qHcselylh9ro9gg9 z6=7mU0rhFEhm*tFc;f`@6h!!-Sx;-i`b#bS&Asbtyc5iO1=>+aea3ebpX39tDiG^> z#Euh$O^+#trXG#~Lky0yDhXqC-BGK<)S8;*2=>Ivl1cdt^>0b-0B^fc;R^d1nU)CL z@v>pty+Mt8qz6%mS{t>mJ?=cK&ol==j)h!3&R@%`B?oR_JrXwYV+(wr?}pq`(g!Hp z-}@vf0eE=Ig%SlVaH~(`4VCOYE>nyPd$sZ?oN9~Ro?DHR;P3T^EC>VUAGbeqG|5kh2dpR~dxPUs2~ck6UOXM|?DAIF?uu zK!{*-uV$($Q1036MaQ@5y~9-V!}_sne1B(NJAOre)bbeW@v;>mHPvpu6ulwYg28p|OqDx?p3-N|9 zRr&`?sTiXkB}NRK0VaaBZxM@(dvgLk`lW@p6!K`;l?k6idFtvyN2c=o3#Cjt!9?_9 zB|5(aawsEnV4o%o4(6K`YwOl-BX*IMwctK581S32?mVVTPLT8gdpJiw;3)$vAy*0!IeBP^h2 z&^3q9nBG_%$qVFzha!NR;&OgMS{3SINvC!!{;>wM?p(ZAW27P&lqJ$l1Y^PNl+8#T zRPJGb+T|n#LZ-kD1A_e8ltqNGOw8E3eDUFIGEC!vL|?R&L6x}h#vKNxU%5g>&OHX< zm;D85+D$jcX;3TjwgpG1R7Iw_Eb(%{H^s~ZE#wY(Tr(a^-`Em3Zv{j}4o?pRQ(S*{ zaz6_l+(PV=%O8r)FGnF(vEU1Eq@IbK#&m<8G2t?*HWl3P27RzzYbyhPdA-k=aN1{24keRlakma8unJZU5zh~;AGZiO1 zigm!YPeaa1sURfP#8zH0dq2BaWxz9X`}pq`W1r+vE#c9e^I4zl?;==+1siFjDN`XM z8Cq2o%ERCphV0!5X2ZA}W^qXRHkLN19+zDQK^abh?wEVu1^LoSg0AQe%MLMY2blm7 z# z>2K;liH*+|-M8qOpJ2=$Lpd93cxiaF_qmc>tK>2{@A$}OueDS*JjZ~#CAB`vPc^*< zBE$u?1Up-g{+hRJ7h!+Ci;od+=ez7E_eLowEhm*Sp za>EAU53Op*cY_isKZ$k`!*e7%lcOA6EIBkDIg5-K_cSZ^;~F_;Uqe9zfFz>MUPiO= zwLQ1CO1b%b1G!vqkQV~%cSpnDlHCkOgCtX`V%{)2@H>7y0oP|Lzo!B%xMSrKe*Oo% z=l`v={lC!<|Mw{2f5{vFKg72G&k*B(*1CgN9MAhVPPFw8HT%z>>wkcP{=@wE-&MW; zy_VrWRi%^p|Cm$zU+dGIe+B?Zfv<+nNIEk&H0C=&z^n_AMCY4E_Bv#?5g_0YI>mH# zX_e7ws*KlwK3;+a}g<4bVsq@1W(BEr`F~LjBRs-Lc0HNxcH5<4QQ5u2y(yxmfYENJ$yW zwucJHQ%NxRKr&7>?u}k>J-6w1li*lHhGQasui&+av<6UX_DpmfY-Y#unUw~k=M)(8AQ#D?DMbuh+bbixw<4mCpVtbxT)n-!;$G0 zA(Z(3&A@kzE87=EB??xeEL}pmxe+oeqAS?}g955TVOSQTq~tJv3AvUDCzui{z|9C( zP}n2)y{DdD&yoDG*{bOHJ1P;DVRaUlxhfZ9F9Yr-JK|c^1}yGYm@I0ghFm%mCJkOz zUC3!n$b2z|aFY4?3Qs?gLetiS>Pfg9@^l9;Eqnb^L88CUn2lI|VGV1;k zUlktAl-L+EMBkO%EkeDd=R&)lA&30Qu~()O%aoNbQ%iu#XEqW+k{B!zt3>#l%iTER zs-E6SB?mjWC_0YCTnS!@yVvTqMpa==r8cV+3+SuebCLV8dbb=#XLw7;?Lmpro|{Lk zx4YBh=qur^d;uS039m!a|qK}P>)Me^-M3E@NO-9wseejjgPKjnh5&He3j=B z{+AO%ZEwA>KT{=4*tUOrOAGk)svit@5Td*}LKk~0u6tz+jYo{yuCZEuDITpx z2O_iba&Oq{#rmnUQuOEb&TI#u^ZNDFSy_ivMIDDno=FFO%q)tzCj?JCfr5VQ9u~E# zVRE&+@rf_XGY>^3U45YdHeCRdVjtVwYDEa8+o!xq>$hQ}-|2U5Zu98iBVJ7~40y?p zUx}IbK9VP#Bb}8aX@HP6*drU~maB4M|0gq(1=Ld5b0WEeX1Dec*pc5NGT1oTN5jU zzpop!=hN-;b-;jbF2V2T!{?I+e+$HmoHNuBxe4l{xZJR7x&sSMo+S=6s+fmRg<`1c z>_0_UcB}$*8m5!$POJI&JCE|@SExp&#MpB+F0#jIg7A%Z5(1%x62kp2s&ge$`;%)Lo($<|rUUiWn4!mum z$OSd@b$RlY#KK(1jf^fjPP8TB11nH3)6?1*xFQ$Z`=}jtpGpjS>2@4KL z-nqQ$FPP7GCT!(xdIF`cVhVFqf`GzJ>g}`z&Qk$e9N|>lYznq3xI*fW>gbWkSUNRv z;lWA4oDlUL;K_0eOFyEGXnfhLp%z08D#g=50<^zQYdiU6n$k`t>rr-`2_gay1>MVWvm~$pIgL2TN-D*cy3j2w`)J z;5a?oZMKENWriDPNu3sTL&Q+UJJyvcxVnp&_4v#u4H^YQ)IU(P!{1Vq&9d(2#KP+& z(>OGG$>1@`iG$P}u}WiyP9L-zF}bzhp5I)`%O+!@8HjhPA0P$Rg5qbvR>$57$!Oi1 zNBA)F2v!YlQwJC4KJgS;?b@mZOBY**f8-~7jER_9<;|EH4Y)WsfBPS_f&b*hbJ!59 ztbhHwb7~$44!biZAWKwg-GNh-(v9A@X_{aDW5bJ#4!QdX31YYJ4HL9LO+0)zYx;?dtiR zG-)LzDnYl>3U9`u(9u_x#lnh^(Hjf*`IG9gC}Rq-=qR@Z`{~0TP_U+?5(*+wpTUGV zuWKV-o#H+5CZ8enCh=NY&=}3d0|U>{TnnJ8s7!P8E8c+zWj$FE#*UeBmBh185>{0X z9$)W6s*^SZYg5q*)3+Few(LAEh28L1`QoIqD|fjXR2}xFO{v7TavrBl73YeM=dh-R zmeK-$-><)1Y{2^y>_G0k6F6^gqzv}hk>hm7>0#t)r`UhDBe%s-TOSbSCUa^Ir{6gM zHOuqYPoA@LamFLBrY=cC^b|*i9FqHokoR#I23a=@Pr1)aV1F7o*$`=I9M@owb$5P~ z_mB1G{?5IJxY38(-z8(s(y@0b!a_$#9|hT23$0tzbLoaH{gVJU4N&su?Hfk7pQ40= z>$pjAo@T>CR5h< zB#0#@djLL05NfJ#$Q3*A>t3)xIVCpDhU*gyM#DeIY{TUX9a>x_!@eh=o{na!MJZgK zrNZK)pGbQC!pc@c31|*C`J1Y70@}XwvYFix{uz`&mFdL*)sDOOUeJ-x&c|w3Fy-`n zmtoy3ho4@6urPe@qAOJx%ma5{#h7$ge0D=yeFyFDr)DkP$cw`1I_r|WL*JoGU$I4M z+0Zh02)Sg=@sJcm^-CTPgqTHhdU=XH0#+*#Th@^@?OmK>bTxaZ2C2rkv@G*= zA3Ky`)m8_GF8KwDKzFlzJ?vZhHd~%FxQt~(sYf$Zi5Vo=!38rb@1zjGvE}YH0+vW) z?Jfb0Cfkk=Lq2+9t3BR9FUV`)NKub~HVjyW6sQ{X1+N`A9#_1eNa!k1M(f*RFLQIi z+xd3#ws<)O7EzZ`MW5AE$&;wv89jv`lhaNWzwb?tSnr2PD$qRrD&5Im~XBE(TRgju#$W5H4RCYs0@V(uGsT^vRD zj}@cV-g<2AO}*kDv8@_$*Wbm5q)=VM!`&(2*@Xl`6~AZ}^w1-#Nc3b(yrHYxBDGD7 zWK3-$c!SRmE$3F?m(NOnJdmI?jNg%q&wzS z6mU+Xm!z%c78HiuGQ3dg)|BS^p2Y?{beeP|nfzty{@wp^OBzDpL+Ea6!9*_Yya=%oM(%Nu~{9ie03 zhyMOwc&`73Cf!;$9~rO#0sZG<`2W96_@C^#{{?6CACMp3&woIESNPVRM{G`lrLF9x4?cSt{FX&;*Wo-aJUzP^wlwo=Vp&ZLzO zivU*XAHu{PDrbkCXn@so)s8jeabWw-;+Nq1PWV^;obW5MF0A6u>(^`FiSkvraH76D z&W&4jphrHx#!4VN229)Na-P$uQO01IbtnMp|-KuB=o*`>dN`PqFP|6?dA z^Vm}+xFi#&%RuQo&d9PN0o%=h=2 zn1WJ3$T?1s9|z-{aONH#4d+k?;Dzu~lbRe8=Qjpo4!F zOc~?HFT#W#f$rl;cFFW3@_lNrpWVW~YSM^FMF^>fpXOaaTx_8D1|8^ruEE-^^c zJhJ7E_GVU)c$RLr!UTM16=*LM=RVe8k9(;=luEXqf2I*g7o>w&VQayJU7=o(3-G4T zwd~F%nsaPe><0H+mrOW7;JQu5cR*dpPndjUek{+yb$48O;NK%9^C(iLhd#m}fXAp9 z*SG6epctR`qHt&=F)tOu$)P7%b?nII%6ViNZelZn2^W9=>-Bhhy|T9tMiuki7BQL? zfF&UzKj6XClEtefr9}%6TIYCc@eFXNXkPqJgrqYhuO_K%i&%2vNM1>*9h|QTI#Pp& zCWN3S3X8u8cSfip{@jbN8kWlOkMV8ES^>sP8#w#D0Por*&d$!kt5Tq8f`|}&XTEt6 zH5jtiLJ*TGhMaToy)kcWalK&??BN}iWM%KitQr#R23_|Z_hIpk?_Gzw9JvTW*`^Tj znjUU`C*Yw3NNiX>C5$`PrbDQhFrECh1AwXqY{sb@>22I%cO(HDKJ_fU#eMKd1g6e_%#k@ckp2ze&idOob2Y+CD5Nm6csQKKv0 zZ)UhJV5X2+69FJepiSS=Zzq_)AFaobejszu))V)Ey4=u4w~%*=VB4QmqYA3QO>co; zejby92~qGZnh)@eqET_#Dq@f#Ar%D&3oHyKM3kUDhXVw>W*qCR>86|!Q`~I?E^t^& z#Car9gy=a@@@P&I0}AZ)8yj>|J?0l|J*QqAbw4|4y7D0mhMJ@wl$OG zb!cs@8Rj($B%(N;6?vlzigywMGmFO#0g0mqsQ5Y>BUuW85D#?j$Uq_rcaz_UeBP0wH~Gx^LFXBK7Tff}?SQEQ+8MB{@|hnVsX*C`=SS^kPwE z$HhB!Xc{Ffa55GmHo3}HIS*=sWm--_zTuaLMDmI3j`Y+gNBSg2h$8Bo6JOLLv$|dJ zoheA6dd*aIK--3FY?;j}8uW$rm;O4W*aE>0 zQ6$9AXTQHioV|_(L5fWZN8qIr!Y~x1GOIWcLh(Q_Ck`EQhb$1@#5{6H3g0X@2Kp8) zi9-PH58hLxL%Srlh03kC5)7xSiZo>sVdU@62+=C2tE>js*vvQ7yuR>{^+>>`!#7RV z)4Iao+0Gw=;)v&K0g>yQak@O_O>rgW_ntI-bY_rn21yT+M}0(-VP|S0{tZHkbxlGr zj%|0bASE0`@@yqG^y7>cuFTKe-yKv>U28PcJItiF>r9~1MJQ(9cuHnHXU7wxhoxEJ zfVWJS4oV>8;v0O$BRzl-N$p24!pd|qF%lQ#%fqPcMVd8>I8r>oUcm`Mk=-yfdKg5nRcBE?PRQitoSgO}j<5yE#lo2YdcZy3)chGXIz#SbzKU;U_Zq${!U znHKAm9D^5nYO+f~IB`_$BYk!pLY+0Y^cj$oB#`alL*`|P7(aM_WHX_nT4O;wf$A@) zUz54yc~5y=SVAy4Y~X71-hzkHe$4gK^TR*1Z;=-v^Q33s`{~gtSKtcdGma@29FMwx zymikV$q2angKll_^Fjm3c@Q#zSZ8ZrQ5?z%KPvF4=} zfSRuTaMY_M(acXR&95Oj39~4H_Z?Z)CV(IVm zRH{5b1PQEcgXr@CQLlP_ku%uL4qfdeOi#IDeTnYo)B4ovI@o@j->2FXOYJ@{tup<- zLbe37mjj4`>PpP7l`I$Kfxi!*DZ9rFvlEUd4sbb5-t`!cupFud##;%p1_G$`0te$Y zv$}tAYOt3@0_IgeM76-U@z132vow#jPbeRj;RMXfPb!jHLN0k1#Enh0L&& zJ;wHzeh0%)CcZ$+aBKG<$&><6iueFfCve(reEkpQ!D0>OACp%o@j8BB$S2tbMSW8O z2cuoGN{Z(t$nhxQ;@BjILqE`1A14AD6AG7|$m8D;D=s-=5%x{cH}-F{m>BH9toqj2 z*UCd!swJbjn{nLeN^|`mhY3BCtYbuPgh%l$%YCjTKoO}l5}P~nP3Y?y=yn-PaAoH= zNGhUlt)-2qg8{l;Z=3kZqNP#u+tW@N6Y#59l2;S>=?`et3$e49({uu||1cB-=!jq| zq;(@sBw%w=(7=m8vktFPbs&dhPsbipzEBuW5d|;QOs#H}O|VrIY*4IMI05V9{7XtH zdma0ypud6BL%#pSM{IT&8vMzgll~t1{kWC%2bl^^-g(&yC|q_xhAU|iB=oZuF;BsE zfRUfm>R&26GiqNP5dU08YO~Kglo=raDF*qfVu1Rb7?l(7&T%AsU%RpY;&_aJKrG$Z z;=)CtbQJu@MuW7AE4iW^#x!<;!2$8P-2x%(%rQrDDVgXEHzbg&Ubr01>O+fx)%-9C zcOwcK_=pfQ{39yK5k$orTb*fq=E^yt9Hc}64^@lmldw{J+k1EyE{6SN4MqkdOk50L$#2by@ELW9GMw8HM^^(93ZrXIL!p*dve{cBZ6jAh$WC!x5K3{*SZK*=E z3~q>eG8s8yYTk*tKN|vpu|=`bso+K6b6LtfMjh_Z6_+F)<~fKy^Wrs#2pNV7XX$#y zv=qFlWoac`lgdM$T6ON4S(XO3ioDq3K}78~|0P7Y;2TdF7R;^OFQkX`1+pGshMV;$ zi9*URgIa8aUetys=6My0QXnRN;y%YL;yQyNL0>2bVDd@=ZlN&4?+I55JBovXo{##k zTX`XK-yAQc$iD!io5bmInQ)NmC;)4K5hpI-ykUobdjy~*`Eit(@424Nd0v#N$h@%7 z77!r{1|yN!+Z_4=VPUJbg_7AS|L}RW&nN=)STeV0XZ+sNOgclaY-$a!1qM3njFk#8 zZ;6~!yYPE(Cb9w*3bMj5&<`{>rU96wE{ZBlm43>mVi<)fFy2y7yyN$8<@nWRdzYhk zXv{A@xbiZ?7>La}pf-x3`zYyddi%C^s1_f~m;s$&AMe@TMXq4!nuw2uCAk{6pgxp& zq=D~;IGaKev*Oi%M%i4a0=J-p{eP2lcJ27p`esj8^s`FeLwm70gnIV_I>@oa?T4iG zesEnIRMaW`OX|y{ru#0ig4mk#BVwAA5v!?;3vql-t^4JUBTxc_glkWyK*`n0dx35F z6ydSH^P0@zIKkz&&Uefsa?>FC5D?wJ4{2#2)D7i#jFeffS`9?HhJLv-Cv5 zc(47|?jw%d?4T2u*nD|&)8(BXcazwSJqEqY=9i5Z2=pt*cf+dTliqPMQe0%h5SaA! zNN@9;U5fKCX)37UAag~vx;nn`*cEUH^P(l!+0oxG#LxzJLZe95KS*>8Z`+%SJ8Xpg z5I3}RVQv{hGr%lP>NB3ylY8Hn+IWO@=NG`(Yc0$`glY)0fUN#FpD+5TWCJKoE4C*= z>0$xC3mfwvf!*DoxBy4|svLkMO_7cp9&LzHU%v)|j+q1kVrBuQ)A}n`8rjW_O#qPX zqi-#TTahU)0zqzOS-xVgm;en|X}q;ED2Cf4;(F(WkyTGZrOflSU4Rw!aauObMiToW zwmNANbt480@C^XX-ps5l#x1#XO*pkn1(cL-MzVj%9>X za|y8Hz{v~nT)4Ko3Dl9TE&}uuh`#MEYF!nSIVn*fq-|Re$(i(~YAWPJfrh{5-^7n` zGGFPR8xvB&9IW_im?tj_z%S}GY*sgPJ%ZFnQ@I;rF*K9e;qIq{1OZdfLRY8jqd4T9 zyjUqR-~5JK&#Q$u$X`|<@lqnke*q^!La5z#=}*>E%joVZSo$l~g*y<21smFqiftN4 zwXf8RBJ0Jos#xBqin&H-UcNn`mtQ(o9++ZJ1v6b=gqgIK`f7XT5I55dL)e4YnJ{q7Px)X-E*pG|FyTHI1ZppbV3CL(pQbW6(qu2v~5&G7Wf4T zV5zRF2tT)JJM3C2z+2>L==M3!h{2zo@!&sCnrZM3!Zzn7mIK)#&L0nP)*I`o9A(`L zn;G%3^QHyR5<|t!fT;CB&&SA0iSrny>*RF4Tl73yY=idZN95ZJve$1%*5Khf1nX%* zqABsLA{8{m&}nOxNw{9}yA&*h)*rh5`eWg&^vK|=Bhp-77-4xv4*I<8m@kr05y*a3 zZC)bB{Ak`qAr{18P(_zjE2npMD;Ql+fK3X#UZ^wYxQa0r2p31)S=rz<>7>!8r$v(bb#AMV7w? za*bnaBC;AS`)jklX%Q((6-3FJ|QII|AW3Q7lBTA=?dD^|Wl{ z^D&ihp%G7}Io3z)2;p%!e-?1X1@FYn}OQT35>TleH`S=UWM53^(2ZxWH8!T;Qq3W@0mm%0l z2WEMpaCeF+bWl_`W4n~Stm)qHx4_OU2o*NK6A^K9<37+c(Dldkzd|nIhMuiQd${+K z`ENQH7ba{{#j1-bgc>dCwvl8#f8Pr8$(@DVhy;Pl41P{#GWgZ-EK6HC7VSAz-?mSc zq`*@N5n3o)&Qlafw*bCJSi94h38WkejIn^(zh3^%2RfDrIsCmj*qLmH_w(lHA08s! z{p-cu3|;4dZ~eFem-g62R^sL8YVL@EZV;JY`%`qSgg7yaKIesZ>%Bu3dcjQZ+BsuD zi<=@D`d$7v&)4p{hv^@`NkX%NM$wWJFo>En#_+Ib6TfuJ4xr4gO^^+6skuSSg#@SL zb{^dO^lE|e0;8tgS@om(HhnXd+Z0Sz(PA$a;;!*RR#wt>lINQi?4+`(y5e2swnJ(_ zY0fiffMKima2gf~FBb`gZV&wl8Dl~_qKZ#?v0}9Hu>y<<$J)<#vv2W&{)F5l(>KW>4-%5s(3S1L3#Dy7l)V&0F}fAJ7*@D8WHtj{I9~St zMc}7m9Y6ekn$jbRZVA!@kNwkhamv5O>0H1t zZZfU@UfZ~6Y1B7-B2|yNxnU|$l$9vod`o0}73#g?-)9|Y!_h3MOOxTxI;W-^Fy+Ep zaEGLt{gas)v26`sCF%z4qV^aIRm(t>U{K1u`|!hGEp<{o5-LN?H=rd><-{n{W!Rmr@jO@&ArrZ2~K?kzB+jd zw*R#6?LPgxDb9EQLpYZ>j?tn$Zy|(+v#LU{0afif&ld6|H(}`G*Js?yy*~ExRiYpp z&_EI2Z|#jv`zfNS!TO;j%Ouf4Fzgu9Uni$pPv5d$wRs8UL;|^^_5o`m~%tK1L3X#Wa?_y%QM%pGpoeL^bzIlB6IVNqi3)a zV=q1M$q!%?jI-}bFcsr2YrIuODozb)uGzRHh2!d-*Ht2kQy?7tF&z-~EO>4?Y{aGy z%DHESG3r`jT!G&2v;khlJh67H=F8h`>?f2iaCyZ?H1gQbOoy5T{S^Hejsj65PxuO= zz26pJ9J71T+Pv5WLNjw{1eVJEa>GUl+6u2&W=kk0fnF4`^t;pk;9soFY-Y$I6Bjz@ z=12Y9Bh5YN4PIZjH@BWmmw}NxH-EpzbyVW-4a4`+cM30p=W^~nZSnl|gr9bBS|>v@ z&_!=|bw_sKa8)d6#c5+tS067?ns_ECU@(5m4xppXRYsb2`->{3(x4vG7`*u=cLVF{ z{V-STYVFOluNMuRg{qBi)W{3sO6NTtm{Fyn`8Pwkt0?AkNT_J3}d z45aJIbri}N3M7Z^aI*-VKP&br{dw1N?-hZQ>WeXN>?}3OVQMWv63d-Or4Aj(=6?zO zwVS!)G>y&vD~(FO_Tl3rYp|Nx&&;6VIYM7D22+QUcE~Mhn>~FvGApDVp1x^E1d~x8 zr^_?UmUf34UsFeh=5hCy+z~pVfp!5xq92J_iKq82AU)pm_t^EgsGP)l z;eGixmi^ITRR)B2;*p0BoKlYHAJhtpw1@X5xd|MB>HQGabY?ffau^Ee)EdTx4BcN8iAu>?D!pYEoy zAzd@)>aJ+su;orq6DI80Idy5SZKyTFNLR^i=^(TKJ8Ked3hA6l;2!CnW=d#@S1yP@ zZE2y?i?EvOYJ}2HZ`4^(zi5yXt`#A)l&qJz{|HO2vel%B8aHX)QNlrMTrK@=$T~7T zDI<|=0SBwPw4+Z-ic#w_9G~8QUC?K0i_-`8ExObCX9i3jJvtGL{X<Tc?XZ^#LHu&=VP-}w+*y0HI3Jy-p(w zRxdWkL=Wh|kbVUGTD#1ld0_RAt9GTg(yLKAmA$1VhrYpqw$TqO4dY(-B;6x+9FqeHf0sAkD`jZQ9px!SSf#`Vi+^ViW>Ivs+$Hy zBC$gmwO=&Wg)kQMAVa6}iYZfk8!PfuI1>Y4la1;|&c z1k7TbmbnMOfA8HK&jD`Sw{XAvGoIdop3T}!5%KiBtjF>r&Pq7c)dx#1e)IS>-dKl?T&u$ku3sV5xRVhU_->$M?VQ) z2y2PI=RX4z02FVBIZuLO03NQH3&73|#m|~fN+)0Y__2Rqyr$9T%epH)R6MkveynAP z69Z9Tb{G;dDyr(v)KTu%t84Zs=Zp=*=H9RgmL6VB^t1oZUk(8Homm9m0w`E@uQ$ys z3oFm~f!t0{eOK`BKWw-v-w?f&K{}|vj7w=Nx}OH2k!Z{9U?tSQ;b{_j`f~85`{pxt zIR13}trgl_;jcGoPSRUpaQm#%`#3gmMQB;UQ$Z$QB6ez`Vo(h2<`5Oqmv?1h3=_j7 zO7BJft>i)-Z~SpF@j77NvJP`s-T=3KPQYXTR=-@zSPt|gp1y--eQ18zyna92cWKH% zla7hv2}Qsu2F%V?$=O?WRwJWXSeX+&t!a-FYNx^o%Sk#x@+(QHc@2(|6HWsIi;Euw zmFRKdvc*0jHHmDunh8j0+6Y-FEpv*>=&uOgaXT9bf<<9jL3rnWx0zcHQ^7=v<7CLs z5xgqU{E3wj%Z6hnsx+>MdZS*D1xWLuvIe#`W2R^dkeY^sIoFGS6y}$9$g;4P1LRG& z=EWa0;W7LgX+qtdiDW_%pmr#Q=^1Bj83=csF@YeI(u)@J!c>i*3SzjC_NqZ_S@~zm z)`bF^`h*mVbUZL31P>yDC9cQ5(a&todewexjs)c+pj2=*S;br7nKD_f+daZeG?eUy z0R$}_joAg+{eR7IOcoN+ar%%_*meEt-11rVvw4ay*%o^;%;r2i)EPK%3ax!K3o~Di zjBk`+A)l5*U8qW&Z%eZSpR0GbY=po9c#+4&6)qx_#`ay3PGPXYfkz1gC3Pg2pfQ2d z<&+14%3vroae^VBho2g-%iEU(k9KF=7ePhhCyth#i_+`9N6Ryh9SplQbk805e~gHP z+Lm2z52KB1ma79vm4Y_BaRuKkV=1RIat?776!GLVG4Iq~Mw>p3=Co3bYYcAa=FpYJ z?pl}e=Fb<6HyaOE_j{9<&&TQdfRDCCtkRQct>|v*m{#r3GW5kz2t?)r&31uz4SYmY zG32Q*kU6m@tgZFYGewcUq?V_g*1VWm5mlZ1b);}xDh~64f`EXo#>#b-mw!D*9DBQF zG}p=liX4&xS4WvrMfg$;P!h!VjSEEV6Og@z^(6$m}^{~d{T;2r%Pj4JgBAXBnC1sJe>V1DD zZKYV7*e8zC@_pkxJ7nAt@6v6ggmyBnu+M0+NGE;+H>lav2?S#wk^^ErMOuEFYVgWk zRgZ#qZRA^C>&s^3S?wZ}DUN|2rhocuR)0uW2d^uuFZmP^`F{CF?wN=;f0x8y80L2% zPcwQ1qXPrZNWb9hr4-!`Zd1}+u(i>0FfYCet{;;`d7l_Phto76P_czU`#zdkd|H}- zL~=CuekO;36mj~Ipsv-cptS^|)`8n!58ct<&gBs%z5H40HZn9x9J(rz;j{Y-ZyroE z=97J6Wga%`^^wODQV;#pEyF!rd_{P&%E)zZx9Z9Jj#nn@4~ub+@{2w>Pi5vuD^n*J+pd zl&IQXr_!U|$8*d?0=$a!@z!Nq_Q^sjra;9yZjE~`!>S6LxD`24q1_-Y-q^L$U^Xw6 zQ&()H@6C&(G-g)t^{IlKQqX}H&=rbytz)MEOUu~yAHXNR;-FjLO2nS; z2XU?c<~9(ZDFFHcKO~{Sls{hd! zn*3S>vO#mj`Dyj2bGHbhnwB*RJ)!k8`hbP~!wPRDTlZYX<5}EQW&NbB&*p6?Cyei& z;o!mGf#)uFba$aa!d`R{%pU8n{$X_m@z_B8#Fw}`P>&r?w#;&|AfRGZy^)}=>|1n$ za`A#`KucowxUphTyj;<74=df@#q%ef$3;BXwi08pTxi`%L47co4<#W$&TdrP)Y$N~ zmS=FT;!29pMPucp`zU@&DERr8Bl#D@V;vp0(N8+~%i|pajjbRe;@Ga^3_7|8Dg%ab z0^SwR_9UKgX{p&f>b8K+@n);xL!|yC{a*nTu&PMI}dy+xk=*P zbUN`tW~=>r{u=5}817bs$7z}q8(o%_SKih!jGeEk%FKo($NDWQ(U1H-KpI(O&0$3P zeA!5h3lZ@v2Bfen54ldRu@I~xE#2D&hV@h>Z4FcK%k4d8FtGU)le3wyexD-aHC(*x z2KI_MhdQMU#Fosgbno_r86Ts11P9G^NeM023XyZ8VQ6eWCjR^EwjRB)|NK}E3%D8) z@oslYSUD3z*i5o%IKfw@^ujQFi@{we_6hrMW!G2HKi%(<>CjmyNl0ysJ*$6g2fjFO zAV0Ebs8Z@5%$a~mS`W-!SN9MYp-k=_y6{w1wnxzph*VK=vPYg3VwN;4n|6PX~|cUEdyDdi?!zOIRZu0RHy`bevlb8R|UBE9*MfALe_ zMI_NcIHrqxsFb*@&lPka#c<>C7d1V$-393dIBX|6z-7u|HhNUSEAY1#ro{>e@sPBL zvf(noDs%PN-G`2J)WJkc2&9p@bWfnsmb{BH9BfG`E|3zjH(dCy#g9si$34dQ5Bwb| z;fx?V4S@E>4?r4vb6Y)|e?&Pib+cRL?H`nQiPu@wE@OTwt@oA}Ijq@@In*HY8eP&I z=$>|+3pk)Fu?{bIhW+^pg|8S=f8tGE!rj_p!Ex8w%D4Ad8@mmD6^0wQ$ow{QpV!yQ z0at5oT$s;4A)LSCYq+ISNO=h4wW5|fS-@h1(Y}8(x80uDq)+c4({|6P}PZR%Vdn+ zeGCG~e%A$>ANXgLn$_-ju<)9*Z-v2e_#DzX0_`rchFikyY4yTk-CbrT)CwWZvSZUl z77PGKY!Mvm(u8jZlE0pBwh*t;X+`fPvuN_yQ1SKOUlq%m>GDFwm@9Elo~G0UcM9*;oHr30ci2x80J zQ1%JEu!pL0s&KuOh%BfKCAu=CGlIyZ9MOH?zK4kBLHJnk7dn@9&-nBaeF~Rfx=0Xq zf9f9K<+KkX2#3XRVYE60049DHQ_trH3%~6Ds7$3ZxUQ6#hdejP^cp{JrZP#Eeq|bq zY%ANtZaS0O`qQ=k?hbX@ENrXvQ6>=syCUtb&RB@xkTP510}enx7&&zKMaicitg1u6 znwn-I?kyw1?*rvSdRU_(2bL5|t77*hPz3iI72CehVA^FNWd5vB;Cr<+gejCzJ3EU~ z>X}6T5t5*$a4jv`4;VPSyCEvspHX%;4Igh^28pGgf^ly#$7{oZEa^(IaCFy4|Lzv3 zyf=)av?ymgWg2Y0dyyHWN=vSFSB#Tjl$3%!Le+2z*DK*z&QXR{f(B$P%SYa z)4)aK>VamBvNok|7z+HTlk*hi7Juc3FZiyV=Sm+d#F zhJsejLVl9<#8)4A35Gk*!dNcQ{Y_;Y`ALzH3YMe-37wO)Ej+!49q_md$w4VQmJJx$ z83hfCn4_FYp?pBm4+;t;=2OylF zUoS?d0@N}ML|M_aI(+d+hJCde9@wMX6z#$2EYH(;yi~tdbZ(R{vIm=t`TW@nspR zGz9$J4;4Y|cweJlHTb*9#KvplrfdQYtU|EsdX5q)@)8}D(t{Gl(>0wsv3nDo7ry}y zTtOlU*(ua44MYUh{zbUP7(-+F+;Su0;hd9ZE^{>8eH#h*86$t&2B4K{ls9wGSzR9TIj=m|plQOP1tJMKxqX?`}1ix$vpRQyt?LZ<@Ag z0Suakzv&?`vJt_P)TOskzF3{Z5`{?r=a$?s#Xr#F=RMYJMC}!k>QE|$IUg~cJ0^~A z>!{Bz{M0{kk|)M1C$cf?x63=FR4RDlsxnM!S`jwZO34_rRn7TCJMMY&2xMxgGHJ5p zXQzc!=+Vgm*SO^m@@d;|jDm#C2aCM;O7&k!^NBj^e7=0SX@z_xvh`-ilxoJ+$|MB} z{;!=g>iStBMal*vR~eQzDkUO6bY@PAZ*4zbV})FdcfwfHqRv4`O7(>bLL=&BY%in+ zX~BF+s#H2pSK)qYC6TY^g^K1I@?jQm68H+JHtt#0Uf9Sa$V-%VX~wfcY*2JQ;So|Cgb8Ng0gp&eqS)|ok# zy+W=yCV%o~h}9q^v%%b&E4HCYtgsR?KD?@OgD<*_%w_DUf7|78ZC}8!Az(lg6mbe5 z5~Br!)TFvAhngaUlPdt&yl1!%SC6+5Zb)<~A^9MTTaJ6rwCFU%IquG7#I31-qH^S( ze`fL5dZSG8CXAwxvC}+LsPgvy@RyR=#v7M@MPVw%g{V^7%d=W(aY2Gf2zX~`wtG_A zIkcxcDJ7BHtEo^ZX-$;5C3%V~Weva~lXCH|fUc74KTT2CG_X?;S4PME%5!i15V!rk zMxD4E4YW%OD#gwNv7&;!17p({iH&L5`U%#G zBtWJ0lax$G5et^sv&pOtZQiCu{}-f~yTlqx5{*&`Gb)-FM&^)3hMJsgU|utGZ?0~A zEtApFVsECeucNcHf-ZAvKHU5LB1FGGuNMOA<@<#3X)HnKN=H774n>1nm2(6leUQ%E ztCOY>1iZ(w4RYs~>hgd_b+z2IHdKEZphB(E)sjyJN?UajB-n}+LfQR~>|~m$3$D#408!eELh z`0IkD$PegljH^Kt+M~*4rUBZw=pjo;JoCY}ru%QL*W1}j3cSc`0^+m{m>zLbqsh*d z1+$szOoyrP$RQb53~@n%V0~oLynrNcDQjGhEs^)Dk_+SWQ>9Up&2C1}Lt7F{#tO=? z8>p(+(1#xz))~~Dk~;6eqMEuDS8fw)s~!sYRDqer76y>@1%Z)E38={BWP7c3#SxDi zcI|oBrp}-3wf2jFK7Gs=d)`LJ$#{FNrar^Xn;9EV4Shzu)$}fZivH%)6WwP`?_dBz*?89p261)$tC?bno9D6@Q2JHf;a%@YjEJ>y$29!6(*g5U2we`4-bD=qn73AqPHcjeaLvZ;_+l z{f3$eRSXDKOQs%!SEL9#SoZ3?CnZIQomUU~~th}l{ znd12_tFO7NH+QqDu37Cd-^aYh*G1#(AC_gAS!G9#Uh6K1HT9X0(q{^?@56B*8W(B^ zw~WIl%Hf8vqWKa9qHBO8TCYrWC50&RS?DGIBnKes3Tx>wEK0GYb&Q0ZsD)gJ)+>{I zyMFDrLK~MO`zKP^mH=DBGxbKtfT=gM{2Pw{Nw!u3mRJmpWv#=bM8duv9^SwfEjh-? zduWp{&enB)o;!xN)cx|Tqcc9TITtj?U2DE3!}~$IX`x_k_SPp)4^_1B)_!&9gmHmp zNukJX;#o7zyi`+8yq)&`YV+9Qn|8N9y2MGcW$Lb~JYS-xKmFj=P}2uT3pw90HCzmyXQ72r<;QwCh9|xc51V6fUox(#W7@vP>`OP@u5{{`blx=6EW5Q!6nY`yeiNVP zo0;bx_rj>oq4e~TMG++jlG6+KOxs+YoGT$xVqCvC%h|elhu+KNV9&RYUgxJ6X==0= znsf#o_?N~(=g@IFCi9$%C)=f;{Le3|{oZ4J*z)M>&YpK8tsA#TYtLjb#(vq^P;f`z zD~4#_dn&)#n3t=6D|k|wtL0Vp34c*k;<}~!`_gacq&c+}XPv5Fut=M>mGQ}qqK?e= ztkvm74PQU1z5H2Q%gvo;yDOaO-`p&`mUA%c9B1Pr|J>~Bhb;5PH*M@bf3C;fk_Zbl zD{b`b{akN_zrV|qV;idre1F(jyZ!YAb*wA*=PX#6d-cYG!h2sB`FiWDS-F19sRtKk zzS}EKnPKB-Uunin5j+pxWZwLi7?cfSWk z4(`zf%#vrpUo`%uCEKD=l=M8i+zqeY6KD+*CH=4352Ut=D4DxW8eHTX`DBd6Pmo1s zC}3t(HKi5;o*i_pHNqk@Mi^qH0HxwZ)&j4H;?y+QlyrI>+Sl}w4 z=l8~!+H7WDjBoxuw$}m%9m79;@dYNVZ)&xAoG5!nk8?Rra*A$%e&x4)?SQzTL6d?J29V z)%8hYOLWJM@Y5W><4&{e)8cxreNfrEFn`Io$eRyE%#!@pH~#R|KXVRR?Q4vgrAZ!& zZG}Q6C_eBRM;J=KPa%5g=qr;Q$rDS^SVV0?GoHVfC6|U&X-zKp5vzwuTS1W)A(HTU zLQ?2V#a5Q2Q1YsZiKSh~9)WMWODtQ7&8-UlPU$fQoqSzsIk;RU^)|Q+}-~zM^F^n106fnG;=}v2$tp%LHV~MoXrv;|o^fzi6EdyJxVss>DSlJu+bPFMY4p1-hVL%_0C(|?l1tu;6RxGE$4aCB}@rR z5*>y4#P#$+-iWi~z-%ZQJedr-)f%pZ1@rh=YGucTEHQJ>Po59+zyUq5W@2V)QWV;U zVJ!fRJ}>yS?^A9Z(#P@{tt%Bz5NLmBFoB->Tyka-Ob=9xFiN!3T`y@9z>$AKbQ)uX zjpyJJS&(4eh{Qet z(Q2ddDa{!6s4v3^LLbvCM-GVLu~KHUd4q>1Qo*Hs;SJ~mN1*j4CVA{KTm`X+&tu09 zll&(|^Sqxejj5duy>-eLA{c5;Z;^vQIUo<9=XpnYxXQLyi;s)GngZ5gisb?Rw;b0& zDB^JC0aTiw%m-90fNcgo6QmlTd}yPua)TV^!iLR~aHZLRY6YcnLlX7?dH;`j`uHGZ zg2r4_eaI}*mXLluq)y4}#HJFd&>D+7jwi3rB{x5{n`w{dfayLO>%mK!4SFxCjcb8bL25k1*6S z2SrwHQ^(>ekpB#vhs%HAMU{`LQiVuR8EIrB$VaZhfZb5!zP6q!pW6Ac@01v(Y;#O@ zuu9poE?Lq>ljI4a5{>i((xlh+&Vg|7egY)|z;Fg1#(x={MkdhMWM^M-EmQ^u8I)*5+dxFZm;S&YPeB@Qq%`{XOlfL34Q>p? zBI!!W)iel-R;Vc4F^?3F0*g&N0St|k4xWJxLJdOr40!5c{!PTIn`IMqBD{Kp@NwZ( zLMFmdAOw+v4-Z$56+XI^%E~f&6j;d*a#fEMK1q{Gine7GNKxi$s>cVPf=K0~y=@fu zU^5ZbV}wryq%ztSHwuj8W(2Co37@7%<^4>lQgz(vO>QTa{ zqERV1CX50l#TjYp(ZVN%QE64~90giY)VX2mF~X-cQ5oGx9tB2}*-b<9LG>m+GDyZJ zKcR7#`h4V%_aSOd`9fFrh=mGWtqk>n#V1T=Dk^CAZd8?G;M1& literal 0 HcmV?d00001 diff --git a/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/RT-resource-resolution-1.0.0.zip b/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/RT-resource-resolution-1.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..10560bb30422731935ccf71d8495921e9d6b880b GIT binary patch literal 10639 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 literal 0 HcmV?d00001 diff --git a/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/pnf_netconf-1.0.0.zip b/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/pnf_netconf-1.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..32491a06aa32bc02424b7314bc779e27232c191e GIT binary patch literal 32256 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 literal 0 HcmV?d00001 diff --git a/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/ubuntu20-1.0.0.zip b/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/ubuntu20-1.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..4c11879d701dc59d4b95d69ab915f55a8ec0b2b4 GIT binary patch literal 11059 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 literal 0 HcmV?d00001 diff --git a/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/vFW-CDS-1.0.0.zip b/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/vFW-CDS-1.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..8c7599d8dbac5c396f6fe55a6e13450900bd83c2 GIT binary patch literal 19988 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

    8*Q^!V>^vRJY${7G@4BiESSz>Gt(SI zhl0#+JxtCSL~&!$pM!~}?;JjfWDQ0Yu@1PnOyBP6uF)pn$PFm$j}ghqhrqIfPhpM+ zV`70Lno>VH_?Ru0+PuEfUO9mBXakiioy>4w%tPF#wGm#qlbBgv+Qi!4)Pxs^sMY)t zi-2uVb%;Xkk|q3fO%Eizw+Q<*yicBWBa%4&=_JAZ6FN%MY&sw-ziO;8&Y4gHax}(h<9;AayD!=%!wY@)q&5na_kvFyJD+*^faw~)O!V`wPj%j+G=cCK6`S;INT!kb&V`Hj$ zmntRsabIij9N|>4`qV{S_*@>aKq)X|qAU;vlN==g+WTkrJZNmKRtV#HtG4Pv zaO(t?vDH!Pdo^Pp;>5G5nWS2j8A`IwF6pPEi_g<`^*ksUK3A#neLpeyhTz=e-dr`l zYp1Rgg5eX}H&Y~CH&N7^V6Ie}lLCc*6iRsEmKyQ3d~M2qcQNJ=J`X4mu1qN&QA$!8 z%CeZupNo=1z>kMXN+)Vy5uX*w;TE3Cwoc7ENC}0I$aFP^WCefiW0qDrpX2aMgL-34 z&{VgzX}a#y)k$GHqgj}?@uI*1Ir<1Y@?!G*iI)+|oDj~a7G%7#<@breMdRcRYq~bO zGJ%f>U$d<{JFbzDD@8upPYK-BQ4w_s5sE&#ZGr;q-bVJxFC1?|U_OX>sd%5!y6xS& zbr;yAqlmJu%gY64Tb1V!Z1V&zC=?|+a^|}|J_fWY!OXCeUSH2h^;3?V z)w?rxk9S@TJmN0wEg4>o><8GS7xE0etE--DFLuuiscSl3P2}~db0OQz4Xb<+tKnmP zyMf%`*4MlaShEc?w06-jji+ z$s)g{P(kF5k7~HGs4b@xr4A=j}$<5&=*o1rjoFTrK7`t&w9O z>QX2Tzit|uQ7U8>BwBsVoX{v8X}fsjpj0B$liR7Cd)`AUnm=(>=dhz@ynGB2%}!)8 zyU~9V{N);E(Vnfe9o8(_mG00mfcNT2eU%ayEW^T~A(nwF?P;5;$e5w>ymYsU7uf^E z#K8ZXPdZZva!o79yBTdSS0sMw!V3Y|dE)J10X)N9xEFJ&Dwy}Y)liliWp!P`a_Tn9 zc{tW)y}|f{+Q;PR$=@WVpkB@JkEV${>%|=05veI<7-Ptj_7u+hFZk$zPHoCICRh?L z?`INa4Ox8Brl~r76e{C5K7EQgD)kepuMas!?Dg182lN#E=2s%P#YYSdeS49GBd=QN zSR#6rmJv|sL9NoR+5P#cbcBpX#WjRRl|&;%5Ail@;1li4mrDC%YG|^fWC65}PkAR6 zEF>w(%`lfpgJh2=z+HMcBS~jQ+SRo(PO?A6echyp^Iz zD34wBD32+r@}zJ+8jgyq@J!_vx!a2bO(;mXy(1JJL?BH0Lej@imv3(1NCbw;Igbn6 z)6GWx_yPEq3?Gk7==Le98^N5i>%FH8d0D3v ze{3<+f}eEO9GaoWgktY>>DFNDUxrl;NgZhnkpdg4n~qVN>_Vh- zzcxRnP_>vO=*+;}n3Rqi{+fOy1SU?`V4eRi!m(-jfL6z`$*G9BolF$lK5f`Ym5BTC zgWsZ&>Od}}75CbCISAqrrVCenfNB{&v0r>Ukj=!JL z@#bgv(?$PRxBob};~&>sD$AeG;rO}n4`fbBmw{`n9O(7zqx@xM8| z<7dpjM?L>Oz8|Mw{Ns8%_~WM&Eq-qIqpv>~y;@NaInV;|BvVS*QBH0fc`lv_SZ+NApRNt2XXwLtnQy#{YNg#KdyZ8Uo%_&%7$n&u-LTA1oM_Uvd8_3i2DMFh7}g m)W3{&j{R5E|F6UL-|7YEn^6Gpc7_@Tfbg59ZhHUY+y4Vj?#o#K literal 0 HcmV?d00001 diff --git a/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/vLB_CDS-1.0.0.zip b/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/vLB_CDS-1.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..19fb41d89892a9f8b1898f8eb7076455038d4e7e GIT binary patch literal 26418 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 literal 0 HcmV?d00001 diff --git a/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/vLB_CDS_KOTLIN-1.0.0.zip b/cds-ui/e2e-playwright/mock-processor/fixtures/cba-zips/vLB_CDS_KOTLIN-1.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..4899777d6dc114111102b1622ea281b2973743a8 GIT binary patch literal 29076 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�~QgD$^wM_c>%=?-ED6{*HjXSs9EwUdB`=c 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 literal 0 HcmV?d00001 diff --git a/cds-ui/e2e-playwright/mock-processor/fixtures/model-types.json b/cds-ui/e2e-playwright/mock-processor/fixtures/model-types.json index 74605d0f7..7fd213bc0 100644 --- a/cds-ui/e2e-playwright/mock-processor/fixtures/model-types.json +++ b/cds-ui/e2e-playwright/mock-processor/fixtures/model-types.json @@ -1,71 +1,1762 @@ [ { - "modelName": "source-input", - "derivedFrom": "tosca.nodes.Root", + "modelName": "datatype-property", + "derivedFrom": "tosca.datatypes.Root", "definitionType": "data_type", "definition": { - "description": "This is an input source type", "version": "1.0.0", - "attributes": {}, - "operations": {} + "description": "This is Entry point Input Data Type, which is dynamic datatype, The parameter names will be populated during the Design time for each inputs", + "properties": { + "type": { + "required": true, + "type": "string" + }, + "description": { + "required": false, + "type": "string" + }, + "required": { + "required": false, + "type": "boolean" + }, + "default": { + "required": false, + "type": "string" + }, + "entry_schema": { + "required": false, + "type": "string" + } + }, + "derived_from": "tosca.datatypes.Root" }, - "description": "Input source type", + "description": "This is Entry point Input Data Type, which is dynamic datatype, The parameter names will be populated during the Design time for each inputs", "version": "1.0.0", - "tags": "source,input", - "creationDate": "2024-01-01T00:00:00.000Z", - "updatedBy": "admin" + "tags": "datatype-property,tosca.datatypes.Root,data_type", + "creationDate": "2026-03-04T14:26:41.463Z", + "updatedBy": "System" }, { - "modelName": "source-default", - "derivedFrom": "tosca.nodes.Root", + "modelName": "datatype-resource-assignment", + "derivedFrom": "tosca.datatypes.Root", "definitionType": "data_type", "definition": { - "description": "This is a default source type", "version": "1.0.0", - "attributes": {}, - "operations": {} + "description": "This is Resource Assignment Data Type", + "properties": { + "property": { + "required": true, + "type": "datatype-property" + }, + "input-param": { + "required": true, + "type": "boolean" + }, + "dictionary-name": { + "required": false, + "type": "string" + }, + "dictionary-source": { + "required": false, + "type": "string" + }, + "templating-constants": { + "required": false, + "type": "map", + "entry_schema": { + "type": "string" + } + }, + "dependencies": { + "required": true, + "type": "list", + "entry_schema": { + "type": "string" + } + }, + "status": { + "required": false, + "type": "string" + }, + "message": { + "required": false, + "type": "string" + }, + "updated-date": { + "required": false, + "type": "string" + }, + "updated-by": { + "required": false, + "type": "string" + } + }, + "derived_from": "tosca.datatypes.Root" }, - "description": "Default source type", + "description": "This is Resource Assignment Data Type", "version": "1.0.0", - "tags": "source,default", - "creationDate": "2024-01-01T00:00:00.000Z", - "updatedBy": "admin" + "tags": "datatype-resource-assignment,tosca.datatypes.Root,data_type", + "creationDate": "2026-03-04T14:26:41.467Z", + "updatedBy": "System" }, { - "modelName": "source-rest", - "derivedFrom": "tosca.nodes.Root", + "modelName": "dt-license-key", + "derivedFrom": "tosca.datatypes.Root", + "definitionType": "data_type", + "definition": { + "version": "1.0.0", + "description": "This is dt-plicense-key Data Type", + "properties": { + "license-key": { + "required": true, + "type": "string" + } + }, + "derived_from": "tosca.datatypes.Root" + }, + "description": "This is dt-plicense-key Data Type", + "version": "1.0.0", + "tags": "dt-license-key,tosca.datatypes.Root,data_type", + "creationDate": "2026-03-04T14:26:41.466Z", + "updatedBy": "System" + }, + { + "modelName": "dt-netbox-ip", + "derivedFrom": "tosca.datatypes.Root", + "definitionType": "data_type", + "definition": { + "version": "1.0.0", + "description": "This is Netbox IP Data Type", + "properties": { + "address": { + "required": true, + "type": "string" + }, + "id": { + "required": true, + "type": "integer" + } + }, + "derived_from": "tosca.datatypes.Root" + }, + "description": "This is Netbox IP Data Type", + "version": "1.0.0", + "tags": "dt-netbox-ip,tosca.datatypes.Root,data_type", + "creationDate": "2026-03-04T14:26:41.478Z", + "updatedBy": "System" + }, + { + "modelName": "dt-system-packages", + "derivedFrom": "tosca.datatypes.Root", + "definitionType": "data_type", + "definition": { + "description": "This represent System Package Data Type", + "version": "1.0.0", + "properties": { + "type": { + "required": true, + "type": "string", + "constraints": [ + { + "valid_values": [ + "ansible_galaxy", + "pip" + ] + } + ] + }, + "package": { + "required": true, + "type": "list", + "entry_schema": { + "type": "string" + } + } + }, + "derived_from": "tosca.datatypes.Root" + }, + "description": "This represent System Package Data Type", + "version": "1.0.0", + "tags": "dt-system-packages,tosca.datatypes.Root,data_type", + "creationDate": "2026-03-04T14:26:41.478Z", + "updatedBy": "System" + }, + { + "modelName": "dt-v4-aggregate", + "derivedFrom": "tosca.datatypes.Root", + "definitionType": "data_type", + "definition": { + "version": "1.0.0", + "description": "This is dt-v4-aggregate Data Type", + "properties": { + "ipv4-address": { + "required": true, + "type": "string" + }, + "ipv4-plen": { + "required": false, + "type": "integer" + } + }, + "derived_from": "tosca.datatypes.Root" + }, + "description": "This is dt-v4-aggregate Data Type", + "version": "1.0.0", + "tags": "dt-v4-aggregate,tosca.datatypes.Root,data_type", + "creationDate": "2026-03-04T14:26:41.468Z", + "updatedBy": "System" + }, + { + "modelName": "tosca.datatypes.Credential", + "derivedFrom": "tosca.datatypes.Root", + "definitionType": "data_type", + "definition": { + "version": "1.0.0", + "description": "Credential", + "properties": { + "protocol": { + "required": false, + "type": "string" + }, + "token_type": { + "required": true, + "type": "string", + "default": "password" + }, + "token": { + "required": false, + "type": "string" + }, + "keys": { + "required": false, + "type": "list", + "entry_schema": { + "type": "string" + } + }, + "user": { + "required": false, + "type": "string" + } + }, + "derived_from": "tosca.datatypes.Root" + }, + "description": "Credential", + "version": "1.0.0", + "tags": "tosca.datatypes.Credential,tosca.datatypes.Root,data_type", + "creationDate": "2026-03-04T14:26:41.478Z", + "updatedBy": "System" + }, + { + "modelName": "component-config-snapshots-executor", + "derivedFrom": "tosca.nodes.Component", + "definitionType": "node_type", + "definition": { + "description": "This is Resource configuration snapshots Execution Component.", + "version": "1.0.0", + "attributes": { + "config-snapshot-status": { + "required": true, + "type": "string" + }, + "config-snapshot-message": { + "required": true, + "type": "string" + }, + "config-snapshot-value": { + "required": false, + "type": "string" + } + }, + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "interfaces": { + "ComponentConfigSnapshotsExecutor": { + "operations": { + "process": { + "inputs": { + "operation": { + "description": "Operation to perform: fetch, store, diff. (required)", + "required": true, + "type": "string", + "constraints": [ + { + "valid_values": [ + "fetch", + "store", + "diff" + ] + } + ] + }, + "resource-id": { + "description": "Identifier for the resource config to operate on. (required)", + "required": true, + "type": "string" + }, + "resource-type": { + "description": "Type of the resource config to operate on, e.g. PNF, VNF, etc. (required)", + "required": true, + "type": "string" + }, + "resource-status": { + "description": "Status of the resource to fetch or store, either RUNNING or CANDIDATE. (optional)", + "required": false, + "type": "string", + "default": "RUNNING", + "constraints": [ + { + "valid_values": [ + "RUNNING", + "CANDIDATE" + ] + } + ] + }, + "resource-snapshot": { + "description": "The resource config snapshot to store for the resource identified by id/type/status. (store operation only)", + "required": false, + "type": "string" + }, + "diff-content-type": { + "description": "Specify the type of content expected, to perform comparison on. (diff operation only)", + "required": false, + "type": "string", + "constraints": [ + { + "valid_values": [ + "xml", + "json" + ] + } + ] + } + }, + "outputs": { + "response-data": { + "description": "Execution Response Data.", + "required": false, + "type": "string" + }, + "status": { + "description": "Status of the Component Execution ( success or failure )", + "required": true, + "type": "string" + } + } + } + } + } + }, + "derived_from": "tosca.nodes.Component" + }, + "description": "This is Resource configuration snapshots Execution Component.", + "version": "1.0.0", + "tags": "component-config-snapshots-executor,tosca.nodes.Component,node_type", + "creationDate": "2026-03-04T14:26:42.378Z", + "updatedBy": "System" + }, + { + "modelName": "component-jython-executor", + "derivedFrom": "tosca.nodes.Component", "definitionType": "node_type", "definition": { - "description": "REST source type", + "description": "This is Jython Execution Component.", + "version": "1.0.0", + "attributes": { + "response-data": { + "required": false, + "type": "json" + }, + "status": { + "required": true, + "type": "string" + } + }, + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "interfaces": { + "ComponentJythonExecutor": { + "operations": { + "process": { + "inputs": { + "instance-dependencies": { + "required": true, + "description": "Instance Names to Inject to Jython Script.", + "type": "list", + "entry_schema": { + "type": "string" + } + }, + "dynamic-properties": { + "description": "Dynamic Json Content or DSL Json reference.", + "required": false, + "type": "json" + } + }, + "outputs": { + "response-data": { + "description": "Execution Response Data in JSON format.", + "required": false, + "type": "string" + }, + "status": { + "description": "Status of the Component Execution ( success or failure )", + "required": true, + "type": "string" + } + } + } + } + } + }, + "derived_from": "tosca.nodes.Component" + }, + "description": "This is Jython Execution Component.", + "version": "1.0.0", + "tags": "component-jython-executor,tosca.nodes.Component,node_type", + "creationDate": "2026-03-04T14:26:42.571Z", + "updatedBy": "System" + }, + { + "modelName": "component-k8s-config-template", + "derivedFrom": "tosca.nodes.Component", + "definitionType": "node_type", + "definition": { + "description": "This component is rendering and sending the k8s config template to the multicloud plugin.", + "version": "1.0.0", + "attributes": { + "statuses": { + "required": true, + "type": "json" + } + }, + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "interfaces": { + "K8sConfigTemplateComponent": { + "operations": { + "process": { + "inputs": { + "k8s-rb-config-template-name": { + "description": "K8s template name", + "required": false, + "type": "string" + }, + "k8s-rb-definition-name": { + "description": "K8s definition name", + "required": false, + "type": "string" + }, + "k8s-rb-definition-version": { + "description": "Version of the definition", + "required": false, + "type": "string" + }, + "k8s-rb-config-template-source": { + "description": "Source (tgz/folder) for the template in CBA", + "required": false, + "type": "string" + }, + "artifact-prefix-names": { + "description": "Resource Assignment Artifact Prefix names", + "required": false, + "type": "list", + "entry_schema": { + "type": "string" + } + }, + "resource-assignment-map": { + "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }", + "required": false, + "type": "json" + } + }, + "outputs": { + "statuses": { + "required": true, + "type": "string" + } + } + } + } + } + }, + "derived_from": "tosca.nodes.Component" + }, + "description": "This component is rendering and sending the k8s config template to the multicloud plugin.", + "version": "1.0.0", + "tags": "component-k8s-config-template,tosca.nodes.Component,node_type", + "creationDate": "2026-03-04T14:26:42.589Z", + "updatedBy": "System" + }, + { + "modelName": "component-k8s-config-value", + "derivedFrom": "tosca.nodes.Component", + "definitionType": "node_type", + "definition": { + "description": "This component is sending the k8s config value to the multicloud plugin.", + "version": "1.0.0", + "attributes": { + "statuses": { + "required": true, + "type": "json" + } + }, + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "interfaces": { + "K8sConfigValueComponent": { + "operations": { + "process": { + "inputs": { + "k8s-rb-config-template-name": { + "description": "K8s template name", + "required": false, + "type": "string" + }, + "k8s-rb-config-name": { + "description": "K8s config name", + "required": false, + "type": "string" + }, + "k8s-instance-id": { + "description": "K8s instance id", + "required": false, + "type": "string" + }, + "k8s-rb-config-value-source": { + "description": "Location of value source in CBA", + "required": false, + "type": "string" + }, + "k8s-config-operation-type": { + "required": false, + "type": "string", + "constraints": [ + { + "valid_values": [ + "create", + "update", + "delete" + ] + } + ], + "default": "create" + }, + "artifact-prefix-names": { + "description": "Resource Assignment Artifact Prefix names", + "required": false, + "type": "list", + "entry_schema": { + "type": "string" + } + }, + "resource-assignment-map": { + "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }", + "required": false, + "type": "json" + } + }, + "outputs": { + "statuses": { + "required": true, + "type": "string" + } + } + } + } + } + }, + "derived_from": "tosca.nodes.Component" + }, + "description": "This component is sending the k8s config value to the multicloud plugin.", + "version": "1.0.0", + "tags": "component-k8s-config-value,tosca.nodes.Component,node_type", + "creationDate": "2026-03-04T14:26:42.575Z", + "updatedBy": "System" + }, + { + "modelName": "component-k8s-profile-upload", + "derivedFrom": "tosca.nodes.Component", + "definitionType": "node_type", + "definition": { + "description": "This component is rendering and sending the k8s profile to the multicloud plugin.", + "version": "1.0.0", + "attributes": { + "statuses": { + "required": true, + "type": "json" + } + }, + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "interfaces": { + "K8sProfileUploadComponent": { + "operations": { + "process": { + "inputs": { + "k8s-rb-profile-name": { + "description": "K8s profile name", + "required": false, + "type": "string" + }, + "k8s-rb-definition-name": { + "description": "K8s definition name", + "required": false, + "type": "string" + }, + "k8s-rb-definition-version": { + "description": "Version of the definition", + "required": false, + "type": "string" + }, + "k8s-rb-profile-namespace": { + "description": "a K8s namespace for the profile", + "required": false, + "type": "string" + }, + "k8s-rb-profile-k8s-version": { + "description": "a K8s cluster version for the profile", + "required": false, + "type": "string" + }, + "k8s-rb-profile-source": { + "description": "Source (tgz/folder) for the template in CBA", + "required": false, + "type": "string" + }, + "artifact-prefix-names": { + "description": "Resource Assignment Artifact Prefix names", + "required": false, + "type": "list", + "entry_schema": { + "type": "string" + } + }, + "resource-assignment-map": { + "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }", + "required": false, + "type": "json" + } + }, + "outputs": { + "statuses": { + "required": true, + "type": "string" + } + } + } + } + } + }, + "derived_from": "tosca.nodes.Component" + }, + "description": "This component is rendering and sending the k8s profile to the multicloud plugin.", + "version": "1.0.0", + "tags": "component-k8s-profile-upload,tosca.nodes.Component,node_type", + "creationDate": "2026-03-04T14:26:42.374Z", + "updatedBy": "System" + }, + { + "modelName": "component-netconf-executor", + "derivedFrom": "tosca.nodes.Component", + "definitionType": "node_type", + "definition": { + "description": "This is Netconf Transaction Configuration Component API", + "version": "1.0.0", + "attributes": { + "response-data": { + "required": false, + "type": "json" + }, + "status": { + "required": true, + "type": "string" + } + }, + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "requirements": { + "netconf-connection": { + "capability": "netconf", + "node": "vnf-netconf-device", + "relationship": "tosca.relationships.ConnectsTo" + } + }, + "interfaces": { + "ComponentNetconfExecutor": { + "operations": { + "process": { + "inputs": { + "script-type": { + "description": "Script type, kotlin type is supported", + "required": true, + "type": "string", + "default": "internal", + "constraints": [ + { + "valid_values": [ + "kotlin", + "jython", + "internal" + ] + } + ] + }, + "script-class-reference": { + "description": "Kotlin Script class name or jython script name.", + "required": true, + "type": "string" + }, + "instance-dependencies": { + "required": true, + "description": "Instance names to inject to Jython or Kotlin Script.", + "type": "list", + "entry_schema": { + "type": "string" + } + }, + "dynamic-properties": { + "description": "Dynamic Json Content or DSL Json reference.", + "required": false, + "type": "json" + } + }, + "outputs": { + "response-data": { + "description": "Execution Response Data in JSON format.", + "required": false, + "type": "string" + }, + "status": { + "description": "Status of the Component Execution ( success or failure )", + "required": true, + "type": "string" + } + } + } + } + } + }, + "derived_from": "tosca.nodes.Component" + }, + "description": "This is Netconf Transaction Configuration Component API", + "version": "1.0.0", + "tags": "component-netconf-executor,tosca.nodes.Component,node_type", + "creationDate": "2026-03-04T14:26:42.581Z", + "updatedBy": "System" + }, + { + "modelName": "component-remote-ansible-executor", + "derivedFrom": "tosca.nodes.Component", + "definitionType": "node_type", + "definition": { + "description": "This is Remote Ansible Playbook (AWX) Execution Component.", + "version": "1.0.0", + "attributes": { + "ansible-command-status": { + "required": true, + "type": "string" + }, + "ansible-command-logs": { + "required": true, + "type": "string" + }, + "ansible-artifacts": { + "required": false, + "type": "json" + } + }, + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "interfaces": { + "ComponentRemoteAnsibleExecutor": { + "operations": { + "process": { + "inputs": { + "job-template-name": { + "description": "Primary key or name of the job template to launch new job.", + "required": false, + "type": "string" + }, + "ansible-fire-failure": { + "description": "ansible fire failue status ", + "required": false, + "type": "boolean" + }, + "workflow-job-template-id": { + "description": "Primary key (name not supported) of the workflow job template to launch new job.", + "required": false, + "type": "string" + }, + "limit": { + "description": "Specify host limit for job template to run.", + "required": false, + "type": "string" + }, + "inventory": { + "description": "Specify inventory for job template to run.", + "required": false, + "type": "string" + }, + "extra-vars": { + "required": false, + "type": "json", + "description": "json formatted text that contains extra variables to pass on." + }, + "tags": { + "description": "Specify tagged actions in the playbook to run.", + "required": false, + "type": "string" + }, + "skip-tags": { + "description": "Specify tagged actions in the playbook to omit.", + "required": false, + "type": "string" + }, + "endpoint-selector": { + "description": "Remote AWX Server selector name.", + "required": true, + "type": "string" + } + }, + "outputs": { + "response-data": { + "description": "Execution Response Data.", + "required": false, + "type": "string" + }, + "status": { + "description": "Status of the Component Execution ( success or failure )", + "required": true, + "type": "string" + } + } + } + } + } + }, + "derived_from": "tosca.nodes.Component" + }, + "description": "This is Remote Ansible Playbook (AWX) Execution Component.", + "version": "1.0.0", + "tags": "component-remote-ansible-executor,tosca.nodes.Component,node_type", + "creationDate": "2026-03-04T14:26:42.462Z", + "updatedBy": "System" + }, + { + "modelName": "component-remote-python-executor", + "derivedFrom": "tosca.nodes.Component", + "definitionType": "node_type", + "definition": { + "description": "This is Remote Python Execution Component.", + "version": "1.0.0", + "attributes": { + "status": { + "required": true, + "type": "string" + }, + "prepare-environment-logs": { + "required": false, + "type": "string" + }, + "execute-command-logs": { + "required": false, + "type": "list", + "entry_schema": { + "type": "string" + } + }, + "response-data": { + "required": false, + "type": "json" + } + }, + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "interfaces": { + "ComponentRemotePythonExecutor": { + "operations": { + "process": { + "inputs": { + "endpoint-selector": { + "description": "Remote Container or Server selector name.", + "required": false, + "type": "string", + "default": "remote-python" + }, + "dynamic-properties": { + "description": "Dynamic Json Content or DSL Json reference.", + "required": false, + "type": "json" + }, + "argument-properties": { + "description": "Argument Json Content or DSL Json reference.", + "required": false, + "type": "json" + }, + "command": { + "description": "Command to execute.", + "required": true, + "type": "string" + }, + "packages": { + "description": "Packages to install based on type.", + "required": false, + "type": "list", + "entry_schema": { + "type": "dt-system-packages" + } + }, + "env-prepare-timeout": { + "description": "Time-out for environment preparation.", + "required": false, + "type": "integer", + "default": 120 + }, + "execution-timeout": { + "description": "Time-out for the execution step.", + "required": false, + "type": "integer", + "default": 180 + } + }, + "outputs": { + "response-data": { + "description": "Execution Response Data.", + "required": false, + "type": "string" + }, + "status": { + "description": "Status of the Component Execution ( success or failure )", + "required": true, + "type": "string" + } + } + } + } + } + }, + "derived_from": "tosca.nodes.Component" + }, + "description": "This is Remote Python Execution Component.", + "version": "1.0.0", + "tags": "component-remote-python-executor,tosca.nodes.Component,node_type", + "creationDate": "2026-03-04T14:26:42.462Z", + "updatedBy": "System" + }, + { + "modelName": "component-remote-script-executor", + "derivedFrom": "tosca.nodes.Component", + "definitionType": "node_type", + "definition": { + "description": "Generic Remote Script Component Executor", + "version": "1.0.0", + "attributes": { + "response-data": { + "description": "Remote executed response data.", + "required": false, + "type": "json" + }, + "status": { + "description": "Remote execution status.", + "required": true, + "type": "string" + } + }, + "interfaces": { + "ComponentRemoteScriptExecutor": { + "operations": { + "process": { + "description": "ComponentRemoteScriptExecutor Operation", + "inputs": { + "blueprint-version": { + "description": "Blueprint version.", + "required": true, + "type": "string" + }, + "blueprint-name": { + "description": "Blueprint name.", + "required": true, + "type": "string" + }, + "selector": { + "description": "Remote GRPC selector or DSL reference or GRPC Json config.", + "required": true, + "type": "json" + }, + "blueprint-action": { + "description": "Blueprint action name.", + "required": true, + "type": "string" + }, + "timeout": { + "description": "Remote execution timeout in sec.", + "required": true, + "type": "integer", + "default": 180 + }, + "request-data": { + "description": "Dynamic Json Content or DSL Json reference.", + "required": false, + "type": "json" + } + }, + "outputs": { + "response-data": { + "description": "Execution Response Data.", + "required": false, + "type": "string" + }, + "status": { + "description": "Status of the Component Execution ( success or failure )", + "required": true, + "type": "string" + } + } + } + } + } + }, + "derived_from": "tosca.nodes.Component" + }, + "description": "Generic Remote Script Component Executor", + "version": "1.0.0", + "tags": "component-remote-script-executor,tosca.nodes.Component,node_type", + "creationDate": "2026-03-04T14:26:42.188Z", + "updatedBy": "System" + }, + { + "modelName": "component-resource-deletion", + "derivedFrom": "tosca.nodes.Component", + "definitionType": "node_type", + "definition": { + "description": "This is Resource Deletion Component API", + "version": "1.0.0", + "attributes": { + "result": { + "description": "A map of [artifact-prefix]: { nDeletedTemplates, nDeletedResources }", + "required": true, + "type": "map" + }, + "success": { + "required": true, + "type": "boolean" + } + }, + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "interfaces": { + "ResourceDeletionComponent": { + "operations": { + "process": { + "inputs": { + "resolution-key": { + "description": "Resolution key associated with stored assignments and templates. Required if resource-type + resource-id are empty", + "required": false, + "type": "string" + }, + "resource-type": { + "description": "Resource-type associated with stored assignments and templates. Required if resolution-key is empty. Must be used together with resource-id", + "required": false, + "type": "string" + }, + "resource-id": { + "description": "Resource-id associated with stored assignments and templates. Required if resolution-key is empty. Must be used together with resource-type", + "required": false, + "type": "string" + }, + "artifact-prefix-names": { + "required": true, + "description": "Template , Resource Assignment Artifact Prefix names", + "type": "list", + "entry_schema": { + "type": "string" + } + }, + "last-n-occurrences": { + "description": "Only delete last N occurrences", + "required": false, + "default": null, + "type": "integer" + }, + "fail-on-empty": { + "description": "Determines if the component should fail when nothing was deleted", + "required": false, + "default": false, + "type": "boolean" + } + }, + "outputs": {} + } + } + } + }, + "derived_from": "tosca.nodes.Component" + }, + "description": "This is Resource Deletion Component API", + "version": "1.0.0", + "tags": "component-resource-deletion,tosca.nodes.Component,node_type", + "creationDate": "2026-03-04T14:26:42.456Z", + "updatedBy": "System" + }, + { + "modelName": "component-resource-resolution", + "derivedFrom": "tosca.nodes.Component", + "definitionType": "node_type", + "definition": { + "description": "This is Resource Assignment Component API", + "version": "1.0.0", + "attributes": { + "assignment-params": { + "description": "Holds resolved template, resolution-summary or key-value", + "required": true, + "type": "string" + }, + "assignment-map": { + "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }", + "required": true, + "type": "map" + }, + "status": { + "description": "Resource Assignment status.", + "required": true, + "type": "string" + } + }, + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "interfaces": { + "ResourceResolutionComponent": { + "operations": { + "process": { + "inputs": { + "resolution-key": { + "description": "Key for service instance related correlation.", + "required": false, + "type": "string" + }, + "occurrence": { + "description": "Number of time to perform the resolution.", + "required": false, + "default": 1, + "type": "integer" + }, + "store-result": { + "description": "Whether or not to store the output.", + "required": false, + "type": "boolean" + }, + "force-resolution": { + "description": "Delete existing values to force new resolution. Ineffective when occurrence < 1", + "required": false, + "type": "boolean" + }, + "resource-type": { + "description": "Request type.", + "required": false, + "type": "string" + }, + "resolution-summary": { + "description": "Enable resolution-summary output", + "required": false, + "type": "boolean" + }, + "artifact-prefix-names": { + "required": true, + "description": "Template , Resource Assignment Artifact Prefix names", + "type": "list", + "entry_schema": { + "type": "string" + } + }, + "request-id": { + "description": "Request Id, Unique Id for the request.", + "required": true, + "type": "string" + }, + "resource-id": { + "description": "Resource Id.", + "required": false, + "type": "string" + }, + "action-name": { + "description": "Action Name of the process", + "required": false, + "type": "string" + }, + "dynamic-properties": { + "description": "Dynamic Json Content or DSL Json reference.", + "required": false, + "type": "json" + } + }, + "outputs": { + "resource-assignment-params": { + "required": true, + "type": "string" + }, + "resource-assignment-map": { + "required": true, + "type": "string" + }, + "status": { + "required": true, + "type": "string" + } + } + } + } + } + }, + "derived_from": "tosca.nodes.Component" + }, + "description": "This is Resource Assignment Component API", + "version": "1.0.0", + "tags": "component-resource-resolution,tosca.nodes.Component,node_type", + "creationDate": "2026-03-04T14:26:42.257Z", + "updatedBy": "System" + }, + { + "modelName": "component-script-executor", + "derivedFrom": "tosca.nodes.Component", + "definitionType": "node_type", + "definition": { + "description": "This is CLI Transaction Configuration Component API", + "version": "1.0.0", + "attributes": { + "response-data": { + "required": false, + "type": "json" + }, + "status": { + "required": true, + "type": "string" + } + }, + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "interfaces": { + "ComponentScriptExecutor": { + "operations": { + "process": { + "inputs": { + "script-type": { + "description": "Script type, kotlin type is supported", + "required": true, + "type": "string", + "default": "internal", + "constraints": [ + { + "valid_values": [ + "kotlin", + "jython", + "internal" + ] + } + ] + }, + "script-class-reference": { + "description": "Kotlin Script class name or jython script name.", + "required": true, + "type": "string" + }, + "instance-dependencies": { + "required": true, + "description": "Instance names to inject to Jython or Kotlin Script.", + "type": "list", + "entry_schema": { + "type": "string" + } + }, + "dynamic-properties": { + "description": "Dynamic Json Content or DSL Json reference.", + "required": false, + "type": "json" + } + }, + "outputs": { + "response-data": { + "description": "Execution Response Data.", + "required": false, + "type": "string" + }, + "status": { + "description": "Status of the Component Execution ( success or failure )", + "required": true, + "type": "string" + } + } + } + } + } + }, + "derived_from": "tosca.nodes.Component" + }, + "description": "This is CLI Transaction Configuration Component API", + "version": "1.0.0", + "tags": "component-script-executor,tosca.nodes.Component,node_type", + "creationDate": "2026-03-04T14:26:42.453Z", + "updatedBy": "System" + }, + { + "modelName": "dg-generic", + "derivedFrom": "tosca.nodes.Workflow", + "definitionType": "node_type", + "definition": { + "description": "This is Generic Directed Graph Type", + "version": "1.0.0", + "properties": { + "content": { + "required": true, + "type": "string" + }, + "dependency-node-templates": { + "required": true, + "description": "Dependent Step Components NodeTemplate name.", + "type": "list", + "entry_schema": { + "type": "string" + } + } + }, + "derived_from": "tosca.nodes.Workflow" + }, + "description": "This is Generic Directed Graph Type", + "version": "1.0.0", + "tags": "dg-generic,tosca.nodes.Workflow,node_type", + "creationDate": "2026-03-04T14:26:42.464Z", + "updatedBy": "System" + }, + { + "modelName": "source-capability", + "derivedFrom": "tosca.nodes.ResourceSource", + "definitionType": "node_type", + "definition": { + "description": "This is Component Resource Source Node Type", "version": "1.0.0", "properties": { - "url-path": { "required": true, "type": "string" }, - "verb": { "required": false, "type": "string", "default": "GET" } + "script-type": { + "required": true, + "type": "string", + "default": "kotlin", + "constraints": [ + { + "valid_values": [ + "kotlin", + "internal", + "jython" + ] + } + ] + }, + "script-class-reference": { + "description": "Capability reference name for internal and kotlin, for jython script file path", + "required": true, + "type": "string" + }, + "instance-dependencies": { + "required": false, + "description": "Instance dependency Names to Inject to Kotlin / Jython Script.", + "type": "list", + "entry_schema": { + "type": "string" + } + }, + "key-dependencies": { + "description": "Resource Resolution dependency dictionary names.", + "required": true, + "type": "list", + "entry_schema": { + "type": "string" + } + } }, - "operations": {} + "derived_from": "tosca.nodes.ResourceSource" }, - "description": "REST-based source type", + "description": "This is Component Resource Source Node Type", "version": "1.0.0", - "tags": "source,rest,http", - "creationDate": "2024-01-01T00:00:00.000Z", - "updatedBy": "admin" + "tags": "source-capability,tosca.nodes.ResourceSource,node_type", + "creationDate": "2026-03-04T14:26:42.567Z", + "updatedBy": "System" }, { "modelName": "source-db", - "derivedFrom": "tosca.nodes.Root", + "derivedFrom": "tosca.nodes.ResourceSource", "definitionType": "node_type", "definition": { - "description": "Database source type", + "description": "This is Database Resource Source Node Type", "version": "1.0.0", "properties": { - "query": { "required": true, "type": "string" } + "type": { + "required": true, + "default": "SQL", + "type": "string", + "constraints": [ + { + "valid_values": [ + "SQL", + "PLSQL" + ] + } + ] + }, + "endpoint-selector": { + "required": false, + "type": "string" + }, + "query": { + "required": true, + "type": "string" + }, + "input-key-mapping": { + "required": false, + "type": "map", + "entry_schema": { + "type": "string" + } + }, + "output-key-mapping": { + "required": false, + "type": "map", + "entry_schema": { + "type": "string" + } + }, + "key-dependencies": { + "required": true, + "type": "list", + "entry_schema": { + "type": "string" + } + } + }, + "derived_from": "tosca.nodes.ResourceSource" + }, + "description": "This is Database Resource Source Node Type", + "version": "1.0.0", + "tags": "source-db,tosca.nodes.ResourceSource,node_type", + "creationDate": "2026-03-04T14:26:42.253Z", + "updatedBy": "System" + }, + { + "modelName": "source-default", + "derivedFrom": "tosca.nodes.ResourceSource", + "definitionType": "node_type", + "definition": { + "description": "This is Default Resource Source Node Type", + "version": "1.0.0", + "properties": {}, + "derived_from": "tosca.nodes.ResourceSource" + }, + "description": "This is Default Resource Source Node Type", + "version": "1.0.0", + "tags": "source-default,tosca.nodes.ResourceSource,node_type", + "creationDate": "2026-03-04T14:26:42.369Z", + "updatedBy": "System" + }, + { + "modelName": "source-input", + "derivedFrom": "tosca.nodes.ResourceSource", + "definitionType": "node_type", + "definition": { + "description": "This is Input Resource Source Node Type", + "version": "1.0.0", + "properties": {}, + "derived_from": "tosca.nodes.ResourceSource" + }, + "description": "This is Input Resource Source Node Type", + "version": "1.0.0", + "tags": "source-input,tosca.nodes.ResourceSource,node_type", + "creationDate": "2026-03-04T14:26:42.461Z", + "updatedBy": "System" + }, + { + "modelName": "source-rest", + "derivedFrom": "tosca.nodes.ResourceSource", + "definitionType": "node_type", + "definition": { + "description": "This is Rest Resource Source Node Type", + "version": "1.0.0", + "properties": { + "type": { + "required": true, + "type": "string", + "default": "JSON", + "constraints": [ + { + "valid_values": [ + "JSON" + ] + } + ] + }, + "headers": { + "required": false, + "type": "map", + "entry_schema": { + "type": "string" + } + }, + "verb": { + "required": true, + "type": "string", + "default": "GET", + "constraints": [ + { + "valid_values": [ + "GET", + "POST", + "DELETE", + "PUT" + ] + } + ] + }, + "payload": { + "required": false, + "type": "string", + "default": "" + }, + "endpoint-selector": { + "required": false, + "type": "string" + }, + "url-path": { + "required": true, + "type": "string" + }, + "path": { + "required": true, + "type": "string" + }, + "expression-type": { + "required": false, + "type": "string", + "default": "JSON_PATH", + "constraints": [ + { + "valid_values": [ + "JSON_PATH", + "JSON_POINTER" + ] + } + ] + }, + "input-key-mapping": { + "required": false, + "type": "map", + "entry_schema": { + "type": "string" + } + }, + "output-key-mapping": { + "required": false, + "type": "map", + "entry_schema": { + "type": "string" + } + }, + "key-dependencies": { + "required": true, + "type": "list", + "entry_schema": { + "type": "string" + } + } + }, + "derived_from": "tosca.nodes.ResourceSource" + }, + "description": "This is Rest Resource Source Node Type", + "version": "1.0.0", + "tags": "source-rest,tosca.nodes.ResourceSource,node_type", + "creationDate": "2026-03-04T14:26:42.461Z", + "updatedBy": "System" + }, + { + "modelName": "tosca.nodes.Artifact", + "derivedFrom": "tosca.nodes.Root", + "definitionType": "node_type", + "definition": { + "description": "This is Deprecated Artifact Node Type.", + "version": "1.0.0", + "derived_from": "tosca.nodes.Root" + }, + "description": "This is Deprecated Artifact Node Type.", + "version": "1.0.0", + "tags": "tosca.nodes.Artifact,tosca.nodes.Root,node_type", + "creationDate": "2026-03-04T14:26:42.456Z", + "updatedBy": "System" + }, + { + "modelName": "tosca.nodes.Component", + "derivedFrom": "tosca.nodes.Root", + "definitionType": "node_type", + "definition": { + "description": "This is default Component Node", + "version": "1.0.0", + "derived_from": "tosca.nodes.Root" + }, + "description": "This is default Component Node", + "version": "1.0.0", + "tags": "tosca.nodes.Component,tosca.nodes.Root,node_type", + "creationDate": "2026-03-04T14:26:42.454Z", + "updatedBy": "System" + }, + { + "modelName": "tosca.nodes.ResourceSource", + "derivedFrom": "tosca.nodes.Root", + "definitionType": "node_type", + "definition": { + "description": "TOSCA base type for Resource Sources", + "version": "1.0.0", + "derived_from": "tosca.nodes.Root" + }, + "description": "TOSCA base type for Resource Sources", + "version": "1.0.0", + "tags": "tosca.nodes.ResourceSource,tosca.nodes.Root,node_type", + "creationDate": "2026-03-04T14:26:42.453Z", + "updatedBy": "System" + }, + { + "modelName": "tosca.nodes.Vnf", + "derivedFrom": "tosca.nodes.Root", + "definitionType": "node_type", + "definition": { + "description": "This is VNF Node Type", + "version": "1.0.0", + "derived_from": "tosca.nodes.Root" + }, + "description": "This is VNF Node Type", + "version": "1.0.0", + "tags": "tosca.nodes.Vnf,tosca.nodes.Root,node_type", + "creationDate": "2026-03-04T14:26:42.462Z", + "updatedBy": "System" + }, + { + "modelName": "tosca.nodes.Workflow", + "derivedFrom": "tosca.nodes.Root", + "definitionType": "node_type", + "definition": { + "description": "This is Directed Graph Node Type", + "version": "1.0.0", + "derived_from": "tosca.nodes.Root" + }, + "description": "This is Directed Graph Node Type", + "version": "1.0.0", + "tags": "tosca.nodes.Workflow,tosca.nodes.Root,node_type", + "creationDate": "2026-03-04T14:26:42.453Z", + "updatedBy": "System" + }, + { + "modelName": "vnf-netconf-device", + "derivedFrom": "tosca.nodes.Vnf", + "definitionType": "node_type", + "definition": { + "description": "This is VNF Device with Netconf Capability", + "version": "1.0.0", + "capabilities": { + "netconf": { + "type": "tosca.capabilities.Netconf", + "properties": { + "login-key": { + "required": true, + "type": "string", + "default": "sdnc" + }, + "login-account": { + "required": true, + "type": "string", + "default": "sdnc-tacacs" + }, + "source": { + "required": false, + "type": "string", + "default": "npm" + }, + "target-ip-address": { + "required": true, + "type": "string" + }, + "port-number": { + "required": true, + "type": "integer", + "default": 830 + }, + "connection-time-out": { + "required": false, + "type": "integer", + "default": 30 + } + } + }, + "restconf": { + "type": "tosca.capabilities.Restconf", + "properties": { + "login-key": { + "required": true, + "type": "string" + }, + "login-account": { + "required": true, + "type": "string" + }, + "target-ip-address": { + "required": true, + "type": "string" + }, + "port-number": { + "required": true, + "type": "integer" + }, + "connection-time-out": { + "required": false, + "type": "integer", + "default": 30 + } + } + } }, - "operations": {} + "derived_from": "tosca.nodes.Vnf" }, - "description": "Database source type", + "description": "This is VNF Device with Netconf Capability", "version": "1.0.0", - "tags": "source,db,database", - "creationDate": "2024-01-01T00:00:00.000Z", - "updatedBy": "admin" + "tags": "vnf-netconf-device,tosca.nodes.Vnf,node_type", + "creationDate": "2026-03-04T14:26:42.589Z", + "updatedBy": "System" } -] +] \ No newline at end of file diff --git a/cds-ui/e2e-playwright/mock-processor/fixtures/resource-dictionaries.json b/cds-ui/e2e-playwright/mock-processor/fixtures/resource-dictionaries.json index 36190d22c..35740624d 100644 --- a/cds-ui/e2e-playwright/mock-processor/fixtures/resource-dictionaries.json +++ b/cds-ui/e2e-playwright/mock-processor/fixtures/resource-dictionaries.json @@ -1,71 +1,12480 @@ [ + { + "name": "restmock", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "restmock", + "name": "restmock", + "property": { + "description": "calls a rest mock", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "titans", + "sources": { + "rest": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "json", + "verb": "GET", + "url-path": "/test", + "endpoint-selector": "rest-endpoint", + "path": "", + "input-key-mapping": {}, + "output-key-mapping": { + "res": "myvalue" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "calls a rest mock", + "tags": "restmock", + "creationDate": "2026-03-04T14:26:40.572Z", + "updatedBy": "titans" + }, + { + "name": "RT-rest-post", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "RT-rest-post", + "name": "RT-rest-post", + "property": { + "description": "Rest POST request for regression test", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Selfish", + "sources": { + "rest": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "string", + "verb": "POST", + "url-path": "/post", + "endpoint-selector": "rest-endpoint", + "path": "", + "input-key-mapping": {}, + "output-key-mapping": { + "value": "value" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Rest POST request for regression test", + "tags": "RT-rest-post", + "creationDate": "2026-03-04T14:38:22.085Z", + "updatedBy": "Selfish" + }, + { + "name": "RT-rest-delete", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "RT-rest-delete", + "name": "RT-rest-delete", + "property": { + "description": "Rest DELETE request for regression test", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Selfish", + "sources": { + "rest": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "string", + "verb": "DELETE", + "url-path": "/delete", + "endpoint-selector": "rest-endpoint", + "path": "", + "input-key-mapping": {}, + "output-key-mapping": { + "value": "value" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Rest DELETE request for regression test", + "tags": "RT-rest-delete", + "creationDate": "2026-03-04T14:38:22.283Z", + "updatedBy": "Selfish" + }, + { + "name": "RT-rest-put", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "RT-rest-put", + "name": "RT-rest-put", + "property": { + "description": "Rest PUT request for regression test", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Selfish", + "sources": { + "rest": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "string", + "verb": "PUT", + "url-path": "/put", + "endpoint-selector": "rest-endpoint", + "path": "", + "input-key-mapping": {}, + "output-key-mapping": { + "value": "value" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Rest PUT request for regression test", + "tags": "RT-rest-put", + "creationDate": "2026-03-04T14:38:22.492Z", + "updatedBy": "Selfish" + }, + { + "name": "RT-db", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "RT-db", + "name": "RT-db", + "property": { + "description": "DB request for regression test", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Selfish", + "sources": { + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "endpoint-selector": "db-endpoint", + "type": "SQL", + "query": "select sdnctl.RESOURCE_RESOLUTION.value from sdnctl.RESOURCE_RESOLUTION where value='ok'", + "input-key-mapping": {}, + "output-key-mapping": { + "value": "value" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "DB request for regression test", + "tags": "RT-db", + "creationDate": "2026-03-04T14:38:22.691Z", + "updatedBy": "Selfish" + }, + { + "name": "RT-rest-patch", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "RT-rest-patch", + "name": "RT-rest-patch", + "property": { + "description": "Rest PATCH request for regression test", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Selfish", + "sources": { + "rest": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "string", + "verb": "PATCH", + "url-path": "/patch", + "endpoint-selector": "rest-endpoint", + "path": "", + "input-key-mapping": {}, + "output-key-mapping": { + "value": "value" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Rest PATCH request for regression test", + "tags": "RT-rest-patch", + "creationDate": "2026-03-04T14:38:22.895Z", + "updatedBy": "Selfish" + }, + { + "name": "RT-rest-get-id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "RT-rest-get-id", + "name": "RT-rest-get-id", + "property": { + "description": "Rest GET request using input key mapping", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Selfish", + "sources": { + "rest": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "string", + "verb": "GET", + "url-path": "/get/$id/id", + "endpoint-selector": "rest-endpoint", + "path": "", + "input-key-mapping": { + "id": "j_get" + }, + "output-key-mapping": { + "value": "value" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Rest GET request using input key mapping", + "tags": "RT-rest-get-id", + "creationDate": "2026-03-04T14:38:23.096Z", + "updatedBy": "Selfish" + }, + { + "name": "RT-rest-get", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "RT-rest-get", + "name": "RT-rest-get", + "property": { + "description": "Rest GET request for regression test", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Selfish", + "sources": { + "rest": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "string", + "verb": "GET", + "url-path": "/get", + "endpoint-selector": "rest-endpoint", + "path": "", + "input-key-mapping": {}, + "output-key-mapping": { + "value": "value" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Rest GET request for regression test", + "tags": "RT-rest-get", + "creationDate": "2026-03-04T14:38:23.301Z", + "updatedBy": "Selfish" + }, + { + "name": "kotlin-script", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "properties-capability-source", + "name": "kotlin-script", + "property": { + "description": "Kotlin script used to read properties.", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Self-fish", + "sources": { + "capability": { + "description": null, + "type": "source-capability", + "metadata": null, + "directives": null, + "properties": { + "script-type": "kotlin", + "script-class-reference": "cba.cds.RT.ResolvPropertiesKt", + "instance-dependencies": [] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Kotlin script used to read properties.", + "tags": "properties-capability-source", + "creationDate": "2026-03-04T14:38:23.506Z", + "updatedBy": "Self-fish" + }, + { + "name": "vf-module-number", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vf-module-number", + "name": "vf-module-number", + "property": { + "description": "vf-module-number", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "adetalhouet", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf-module-number", + "tags": "vf-module-number", + "creationDate": "2026-03-04T14:55:23.830Z", + "updatedBy": "adetalhouet" + }, + { + "name": "interface-name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "interface-name", + "name": "interface-name", + "property": { + "description": "interface-name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "adetalhouet", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "interface-name", + "tags": "interface-name", + "creationDate": "2026-03-04T14:55:23.831Z", + "updatedBy": "adetalhouet" + }, + { + "name": "vault-secrets", + "dataType": "map", + "entrySchema": "string", + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vault-secrets", + "name": "vault-secrets", + "property": { + "description": "Vault secret resolution with dynamic endpoint-selector", + "required": null, + "type": "map", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": { + "type": "string", + "constraints": null + }, + "external-schema": null + }, + "group": "default", + "updated-by": "Steve Siani ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "vault-data": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "endpoint-selector": "dynamic-secret-source", + "verb": "GET", + "type": "JSON", + "url-path": "$secret-path", + "path": "", + "input-key-mapping": { + "secret-path": "secret-path" + }, + "output-key-mapping": { + "data": "data" + }, + "key-dependencies": [ + "secret-path" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Vault secret resolution with dynamic endpoint-selector", + "tags": "vault-secrets", + "creationDate": "2026-03-04T14:55:23.853Z", + "updatedBy": "Steve Siani " + }, + { + "name": "name_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "name_0", + "name": "name_0", + "property": { + "description": "name_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "name_0", + "tags": "name_0", + "creationDate": "2026-03-04T14:55:23.854Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "sample-default-source", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "sample-default-source", + "name": "sample-default-source", + "property": { + "description": "name of the ", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "brindasanth@onap.com", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "name of the ", + "tags": "sample-default-source", + "creationDate": "2026-03-04T14:55:23.860Z", + "updatedBy": "brindasanth@onap.com" + }, + { + "name": "status", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "status", + "name": "status", + "property": { + "description": "status", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "status", + "tags": "status", + "creationDate": "2026-03-04T14:55:23.861Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vfw_private_ip_2", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vfw_private_ip_2", + "name": "vfw_private_ip_2", + "property": { + "description": "vfw_private_ip_2", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vfw_private_ip_2", + "tags": "vfw_private_ip_2", + "creationDate": "2026-03-04T14:55:23.863Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vsn_private_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vsn_private_ip_0", + "name": "vsn_private_ip_0", + "property": { + "description": "vsn_private_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "JSON", + "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vsn_private_ip_0", + "path": "/param/0/value", + "expression-type": "JSON_POINTER", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "vsn_private_ip_0": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vsn_private_ip_0", + "tags": "vsn_private_ip_0", + "creationDate": "2026-03-04T14:55:23.865Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vf-module-id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vf-module-id", + "name": "vf-module-id", + "property": { + "description": "vf-module-id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf-module-id", + "tags": "vf-module-id", + "creationDate": "2026-03-04T14:55:23.898Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "sample-input-source", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "sample-input-source", + "name": "sample-input-source", + "property": { + "description": "name of the ", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "brindasanth@onap.com", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": { + "key": "input-source" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "name of the ", + "tags": "sample-input-source", + "creationDate": "2026-03-04T14:55:23.898Z", + "updatedBy": "brindasanth@onap.com" + }, + { + "name": "vf-module-model-invariant-uuid", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vnf, vf-module, vf-module-model-invariant-uuid", + "name": "vf-module-model-invariant-uuid", + "property": { + "description": "vf-module-model-invariant-uuid", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "type": "SQL", + "query": "select sdnctl.VF_MODULE_MODEL.invariant_uuid as vf_module_model_invariant_uuid from sdnctl.VF_MODULE_MODEL where sdnctl.VF_MODULE_MODEL.customization_uuid=:customizationid", + "input-key-mapping": { + "customizationid": "vf-module-model-customization-uuid" + }, + "output-key-mapping": { + "vf-module-model-invariant-uuid": "vf_module_model_invariant_uuid" + }, + "key-dependencies": [ + "vf-module-model-customization-uuid" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf-module-model-invariant-uuid", + "tags": "vnf, vf-module, vf-module-model-invariant-uuid", + "creationDate": "2026-03-04T14:55:23.899Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vsn_private_ip_1", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vsn_private_ip_1", + "name": "vsn_private_ip_1", + "property": { + "description": "vsn_private_ip_1", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vsn_private_ip_1", + "tags": "vsn_private_ip_1", + "creationDate": "2026-03-04T14:55:23.962Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vf-nf-code", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vf-nf-code", + "name": "vf-nf-code", + "property": { + "description": "vf-nf-code", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "type": "SQL", + "query": "select sdnctl.VF_MODEL.nf_code as vf_nf_code from sdnctl.VF_MODEL where sdnctl.VF_MODEL.customization_uuid=:customizationid", + "input-key-mapping": { + "customizationid": "vnf-model-customization-uuid" + }, + "output-key-mapping": { + "vf-nf-code": "vf_nf_code" + }, + "key-dependencies": [ + "vnf-model-customization-uuid" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf-nf-code", + "tags": "vf-nf-code", + "creationDate": "2026-03-04T14:55:23.964Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "sample-mdsal-source", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "sample-mdsal-source", + "name": "sample-mdsal-source", + "property": { + "description": "Sample sample-mdsal-source", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "brindasanth@onap.com", + "sources": { + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "JSON", + "url-path": "config/L3VNF-API:services/service-list/$service-instance-id/service-data/vnf-topology-information/vnf-assignments/vnf-vms/$vm-type/vm-networks/$network-role/v4-assigned-ip-list/$v4-ip-type", + "path": "/v4-assigned-ip-list/0/v4-ip-prefix", + "input-key-mapping": {}, + "output-key-mapping": { + "mdsal-source": "v4-ip-prefix" + }, + "key-dependencies": [] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Sample sample-mdsal-source", + "tags": "sample-mdsal-source", + "creationDate": "2026-03-04T14:55:23.965Z", + "updatedBy": "brindasanth@onap.com" + }, + { + "name": "protected-prefix-id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "protected-prefix-id", + "name": "protected-prefix-id", + "property": { + "description": "protected-prefix-id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "type": "SQL", + "query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"protected\"", + "output-key-mapping": { + "protected-prefix-id": "prefix_id" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "protected-prefix-id", + "tags": "protected-prefix-id", + "creationDate": "2026-03-04T14:55:23.966Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "pnf-ipv4-address", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "pnf-ipv4-address", + "name": "pnf-ipv4-address", + "property": { + "description": "pnf-ipv4-address", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Rodrigo Ottero ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "pnf-ipv4-address", + "tags": "pnf-ipv4-address", + "creationDate": "2026-03-04T14:55:23.970Z", + "updatedBy": "Rodrigo Ottero " + }, + { + "name": "k8s-rb-definition-version", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, k8s-rb-definition-version", + "name": "k8s-rb-definition-version", + "property": { + "description": "K8s RB definition version. Associated with vf-module-model-version", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Lukasz Rajewski ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "K8s RB definition version. Associated with vf-module-model-version", + "tags": "k8s, cnf, k8s-rb-definition-version", + "creationDate": "2026-03-04T14:55:24.053Z", + "updatedBy": "Lukasz Rajewski " + }, + { + "name": "volume_group_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "volume_group_name", + "name": "volume_group_name", + "property": { + "description": "volume_group_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "volume_group_name", + "tags": "volume_group_name", + "creationDate": "2026-03-04T14:55:24.084Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "k8s-rb-config-template-source", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, config, k8s-rb-config-template-source", + "name": "k8s-rb-config-template-source", + "property": { + "description": "The source of configuration template for config-assign operation", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Rajewski, Lukasz ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "The source of configuration template for config-assign operation", + "tags": "k8s, cnf, config, k8s-rb-config-template-source", + "creationDate": "2026-03-04T14:55:24.084Z", + "updatedBy": "Rajewski, Lukasz " + }, { "name": "hostname", - "tags": "network,host,demo", - "updatedBy": "admin", - "updatedDate": "2024-01-10T00:00:00.000Z", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "hostname", + "name": "hostname", + "property": { + "description": "hostname", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "hostname", + "tags": "hostname", + "creationDate": "2026-03-04T14:55:24.085Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vfw_private_ip_1", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vfw_private_ip_1", + "name": "vfw_private_ip_1", + "property": { + "description": "vfw_private_ip_1", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "JSON", + "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vfw_private_ip_1", + "path": "/param/0/value", + "expression-type": "JSON_POINTER", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "vfw_private_ip_1": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vfw_private_ip_1", + "tags": "vfw_private_ip_1", + "creationDate": "2026-03-04T14:55:24.165Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "pnf-id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "pnf-id", + "name": "pnf-id", + "property": { + "description": "pnf-id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Rodrigo Ottero ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "aai-data": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/aai/v22/network/pnfs/pnf/$pnf-id", + "path": "/pnf-name", + "headers": { + "Accept": "application/json", + "X-TransactionId": "AAI-Temp-Tool", + "X-FromAppId": "AAI-Temp-Tool" + }, + "input-key-mapping": { + "pnf-id": "pnf.pnf-id" + }, + "output-key-mapping": { + "pnf-id": "pnf-name" + }, + "key-dependencies": [ + "pnf.pnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "pnf-id", + "tags": "pnf-id", + "creationDate": "2026-03-04T14:55:24.166Z", + "updatedBy": "Rodrigo Ottero " + }, + { + "name": "sample-licenses", + "dataType": "list", + "entrySchema": "dt-license-key", + "resourceDictionaryGroup": "default", + "definition": { + "tags": "sample-licenses", + "name": "sample-licenses", + "property": { + "description": " Sample Data for licences", + "required": true, + "type": "list", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": { + "type": "dt-license-key", + "constraints": null + }, + "external-schema": null + }, + "group": "default", + "updated-by": "brindasanth@onap.com", + "sources": { + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "JSON", + "url-path": "config/L3VNF-API:services/service-list/", + "path": "/licenses", + "input-key-mapping": {}, + "output-key-mapping": { + "licenses": "licenses" + }, + "key-dependencies": [] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": " Sample Data for licences", + "tags": "sample-licenses", + "creationDate": "2026-03-04T14:55:24.167Z", + "updatedBy": "brindasanth@onap.com" + }, + { + "name": "vpg_private_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vpg_private_ip_0", + "name": "vpg_private_ip_0", + "property": { + "description": "vpg_private_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "JSON", + "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_private_ip_0", + "path": "/param/0/value", + "expression-type": "JSON_POINTER", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "vpg_private_ip_0": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vpg_private_ip_0", + "tags": "vpg_private_ip_0", + "creationDate": "2026-03-04T14:55:24.167Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vfw_flavor_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vfw_flavor_name", + "name": "vfw_flavor_name", + "property": { + "description": "vfw_flavor_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vfw_flavor_name", + "path": "/param/0/value", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "vfw_flavor_name": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vfw_flavor_name", + "tags": "vfw_flavor_name", + "creationDate": "2026-03-04T14:55:24.168Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vnf-name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vnf-name", + "name": "vnf-name", + "property": { + "description": "vnf-name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vnf-name", + "path": "/param/0/value", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "vnf-name": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vnf-name", + "tags": "vnf-name", + "creationDate": "2026-03-04T14:55:24.169Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "default-source", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "v4-ip-type, tosca.datatypes.Root, data_type, brindasanth@onap.com", + "name": "default-source", + "property": { + "description": "name of the ", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "brindasanth@onap.com", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "name of the ", + "tags": "v4-ip-type, tosca.datatypes.Root, data_type, brindasanth@onap.com", + "creationDate": "2026-03-04T14:55:24.169Z", + "updatedBy": "brindasanth@onap.com" + }, + { + "name": "vfw_private_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vfw_private_ip_0", + "name": "vfw_private_ip_0", + "property": { + "description": "vfw_private_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "JSON", + "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vfw_private_ip_0", + "path": "/param/0/value", + "expression-type": "JSON_POINTER", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "vfw_private_ip_0": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vfw_private_ip_0", + "tags": "vfw_private_ip_0", + "creationDate": "2026-03-04T14:55:24.169Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "availability_zone_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "availability_zone_0", + "name": "availability_zone_0", + "property": { + "description": "availability_zone_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "availability_zone_0", + "tags": "availability_zone_0", + "creationDate": "2026-03-04T14:55:24.169Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "prefix-id", + "dataType": "integer", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "prefix-id", + "name": "prefix-id", + "property": { + "description": "prefix-id", + "required": null, + "type": "integer", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "adetalhouet", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "prefix-id", + "tags": "prefix-id", + "creationDate": "2026-03-04T14:55:24.171Z", + "updatedBy": "adetalhouet" + }, + { + "name": "db-source", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "bundle-id, brindasanth@onap.com", + "name": "db-source", + "property": { + "description": "name of the ", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "brindasanth@onap.com", + "sources": { + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "query": "SELECT db-country, db-state FROM DEVICE_PROFILE WHERE profile_name = :profile_name", + "input-key-mapping": { + "profile_name": "profile_name" + }, + "output-key-mapping": { + "db-country": "country", + "db-state": "state" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "name of the ", + "tags": "bundle-id, brindasanth@onap.com", + "creationDate": "2026-03-04T14:55:24.172Z", + "updatedBy": "brindasanth@onap.com" + }, + { + "name": "k8s-rb-config-value-source", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, config, k8s-rb-config-value-source", + "name": "k8s-rb-config-value-source", + "property": { + "description": "The source of configuration values for config-deploy operation", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Rajewski, Lukasz ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "The source of configuration values for config-deploy operation", + "tags": "k8s, cnf, config, k8s-rb-config-value-source", + "creationDate": "2026-03-04T14:55:24.173Z", + "updatedBy": "Rajewski, Lukasz " + }, + { + "name": "vpg_0_int_pktgen_private_port_0_mac", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vpg_0_int_pktgen_private_port_0_mac", + "name": "vpg_0_int_pktgen_private_port_0_mac", + "property": { + "description": "vpg_0_int_pktgen_private_port_0_mac", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_0_int_pktgen_private_port_0_mac", + "path": "/param/0/value", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "vpg_0_int_pktgen_private_port_0_mac": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vpg_0_int_pktgen_private_port_0_mac", + "tags": "vpg_0_int_pktgen_private_port_0_mac", + "creationDate": "2026-03-04T14:55:24.174Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "service-instance-id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "service-instance-id, tosca.datatypes.Root, data_type", + "name": "service-instance-id", + "property": { + "description": "To be provided", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "any-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "query": "SELECT artifact_name FROM BLUEPRINT_MODEL where artifact_version=\"1.0.0\"", + "input-key-mapping": {}, + "output-key-mapping": { + "service-instance-id": "artifact_name" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "query": "SELECT artifact_name FROM BLUEPRINT_MODEL where artifact_version=\"1.0.0\"", + "input-key-mapping": {}, + "output-key-mapping": { + "service-instance-id": "artifact_name" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "capability": { + "description": null, + "type": "source-capability", + "metadata": null, + "directives": null, + "properties": { + "script-type": "jython", + "script-class-reference": "SampleRAProcessor", + "instance-dependencies": [] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id", + "path": "/service/0/service-instance-id", + "input-key-mapping": { + "service-instance-id": "service-instance.service-instance-id" + }, + "output-key-mapping": { + "service-instance-id": "service-instance-id" + }, + "key-dependencies": [ + "service-instance.service-instance-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "To be provided", + "tags": "service-instance-id, tosca.datatypes.Root, data_type", + "creationDate": "2026-03-04T14:55:24.259Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vnf_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vnf_id", + "name": "vnf_id", + "property": { + "description": "vnf_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vnf_id", + "tags": "vnf_id", + "creationDate": "2026-03-04T14:55:24.260Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "protected_private_subnet_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "protected_private_subnet_id", + "name": "protected_private_subnet_id", + "property": { + "description": "protected_private_subnet_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "protected_private_subnet_id", + "tags": "protected_private_subnet_id", + "creationDate": "2026-03-04T14:55:24.261Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vsn_flavor_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vsn_flavor_name", + "name": "vsn_flavor_name", + "property": { + "description": "vsn_flavor_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vsn_flavor_name", + "path": "/param/0/value", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "vsn_flavor_name": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vsn_flavor_name", + "tags": "vsn_flavor_name", + "creationDate": "2026-03-04T14:55:24.262Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "properties-capability-source", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "properties-capability-source", + "name": "properties-capability-source", + "property": { + "description": "Data dictionary used to read properties.", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Steve Alphonse Siani, alphonse.steve.siani.djissitchi@ibm.com", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "capability": { + "description": null, + "type": "source-capability", + "metadata": null, + "directives": null, + "properties": { + "script-type": "jython", + "script-class-reference": "Scripts/python/ResolvProperties.py", + "instance-dependencies": [] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Data dictionary used to read properties.", + "tags": "properties-capability-source", + "creationDate": "2026-03-04T14:55:24.278Z", + "updatedBy": "Steve Alphonse Siani, alphonse.steve.siani.djissitchi@ibm.com" + }, + { + "name": "k8s-rb-profile-namespace", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, k8s-rb-profile-namespace", + "name": "k8s-rb-profile-namespace", + "property": { + "description": "Profile name used in multicloud/k8s plugin", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Lukasz Rajewski ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/k8s-rb-profile-namespace", + "path": "/param/0/value", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "k8s-rb-profile-namespace": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Profile name used in multicloud/k8s plugin", + "tags": "k8s, cnf, k8s-rb-profile-namespace", + "creationDate": "2026-03-04T14:55:24.300Z", + "updatedBy": "Lukasz Rajewski " + }, + { + "name": "aic-cloud-region", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "aic-cloud-region", + "name": "aic-cloud-region", + "property": { + "description": "aic-cloud-region", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "aic-cloud-region", + "tags": "aic-cloud-region", + "creationDate": "2026-03-04T14:55:24.301Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "pnf-ipaddress-aai", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "aai-get", + "name": "pnf-ipaddress-aai", + "property": { + "description": "primary aai data to get resource", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Rahul, Tyagi ", + "sources": { + "aai-data": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "JSON", + "verb": "GET", + "url-path": "/aai/v22/network/pnfs/pnf/$pnf-id", + "path": "/ipaddress-v4-oam", + "input-key-mapping": { + "pnf-id": "pnf-id" + }, + "headers": { + "Accept": "application/json" + }, + "output-key-mapping": { + "ipaddress-v4-oam": "value" + }, + "key-dependencies": [ + "pnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "primary aai data to get resource", + "tags": "aai-get", + "creationDate": "2026-03-04T14:55:24.302Z", + "updatedBy": "Rahul, Tyagi " + }, + { + "name": "vpg-management-port", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, vpg-management-port", + "name": "vpg-management-port", + "property": { + "description": "Ssh port number in k8s nodeport to associate with vpg", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Lukasz Rajewski ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Ssh port number in k8s nodeport to associate with vpg", + "tags": "k8s, cnf, vpg-management-port", + "creationDate": "2026-03-04T14:55:24.302Z", + "updatedBy": "Lukasz Rajewski " + }, + { + "name": "unprotected_private_subnet_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "unprotected_private_subnet_id", + "name": "unprotected_private_subnet_id", + "property": { + "description": "unprotected_private_subnet_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "unprotected_private_subnet_id", + "tags": "unprotected_private_subnet_id", + "creationDate": "2026-03-04T14:55:24.303Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "repo_url_artifacts", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "repo_url_artifacts", + "name": "repo_url_artifacts", + "property": { + "description": "repo_url_artifacts", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/repo_url_artifacts", + "path": "/param/0/value", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "repo_url_artifacts": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "repo_url_artifacts", + "tags": "repo_url_artifacts", + "creationDate": "2026-03-04T14:55:24.304Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "config-deploy-setup", + "dataType": "json", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, config-deploy-setup", + "name": "config-deploy-setup", + "property": { + "description": "Configuration for CNF config deployment", + "required": null, + "type": "json", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Lukasz Rajewski ", + "sources": { + "capability": { + "description": null, + "type": "source-capability", + "metadata": null, + "directives": null, + "properties": { + "script-type": "kotlin", + "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.ConfigDeploySetup", + "instance-dependencies": [] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Configuration for CNF config deployment", + "tags": "k8s, cnf, config-deploy-setup", + "creationDate": "2026-03-04T14:55:24.304Z", + "updatedBy": "Lukasz Rajewski " + }, + { + "name": "sample-db-source", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "processor-db, brindasanth@onap.com", + "name": "sample-db-source", + "property": { + "description": "name of the ", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "brindasanth@onap.com", + "sources": { + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "query": "SELECT db-country, db-state FROM DEVICE_PROFILE WHERE profile_name = :profile_name", + "input-key-mapping": { + "profile_name": "profile_name" + }, + "output-key-mapping": { + "db-country": "country", + "db-state": "state" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "name of the ", + "tags": "processor-db, brindasanth@onap.com", + "creationDate": "2026-03-04T14:55:24.305Z", + "updatedBy": "brindasanth@onap.com" + }, + { + "name": "sample-v4-ip-type", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "sample-v4-ip-type", + "name": "sample-v4-ip-type", + "property": { + "description": "sample-v4-ip-type", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "brindasanth@onap.com", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": { + "key": "sample-v4-ip-type" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "sample-v4-ip-type", + "tags": "sample-v4-ip-type", + "creationDate": "2026-03-04T14:55:24.305Z", + "updatedBy": "brindasanth@onap.com" + }, + { + "name": "k8s-rb-config-template-name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, config, k8s-rb-config-template-name", + "name": "k8s-rb-config-template-name", + "property": { + "description": "The name of configuration template for config-assign operation", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Rajewski, Lukasz ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "The name of configuration template for config-assign operation", + "tags": "k8s, cnf, config, k8s-rb-config-template-name", + "creationDate": "2026-03-04T14:55:24.305Z", + "updatedBy": "Rajewski, Lukasz " + }, + { + "name": "k8s-rb-definition-name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, k8s-rb-definition-name", + "name": "k8s-rb-definition-name", + "property": { + "description": "K8s RB definition name. Associated with vf-module-model-invariant-uuid", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Lukasz Rajewski ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "K8s RB definition name. Associated with vf-module-model-invariant-uuid", + "tags": "k8s, cnf, k8s-rb-definition-name", + "creationDate": "2026-03-04T14:55:24.354Z", + "updatedBy": "Lukasz Rajewski " + }, + { + "name": "volume-name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "volume-name", + "name": "volume-name", + "property": { + "description": "volume-name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "volume-name", + "tags": "volume-name", + "creationDate": "2026-03-04T14:55:24.355Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vsn_image_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vsn_image_name", + "name": "vsn_image_name", + "property": { + "description": "vsn_image_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vsn_image_name", + "path": "/param/0/value", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "vsn_image_name": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vsn_image_name", + "tags": "vsn_image_name", + "creationDate": "2026-03-04T14:55:24.356Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vf-modules-list", + "dataType": "json", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vf-modules-list", + "name": "vf-modules-list", + "property": { + "description": "List of vf-modules associated with vnf", + "required": null, + "type": "json", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Lukasz Rajewski ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "aai-data": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/aai/v19/network/generic-vnfs/generic-vnf/${vnf-id}?depth=1", + "path": "/vf-modules", + "input-key-mapping": { + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "vf-modules": "vf-module" + }, + "key-dependencies": [ + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vf-modules", + "path": "/vf-modules", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "vf-modules": "vf-module" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "List of vf-modules associated with vnf", + "tags": "vf-modules-list", + "creationDate": "2026-03-04T14:55:24.356Z", + "updatedBy": "Lukasz Rajewski " + }, + { + "name": "interface-description", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "interface-description", + "name": "interface-description", + "property": { + "description": "interface-description", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "adetalhouet", + "sources": { + "capability": { + "description": null, + "type": "source-capability", + "metadata": null, + "directives": null, + "properties": { + "script-type": "jython", + "script-class-reference": "Scripts/python/DescriptionExample.py", + "instance-dependencies": [] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "interface-description", + "tags": "interface-description", + "creationDate": "2026-03-04T14:55:24.388Z", + "updatedBy": "adetalhouet" + }, + { + "name": "k8s-rb-profile-k8s-version", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, profile, k8s version, k8s-rb-profile-k8s-version", + "name": "k8s-rb-profile-k8s-version", + "property": { + "description": "Profile k8s version used in multicloud/k8s plugin", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Rajewski, Lukasz ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/k8s-rb-profile-k8s-version", + "path": "/param/0/value", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "k8s-rb-profile-k8s-version": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Profile k8s version used in multicloud/k8s plugin", + "tags": "k8s, cnf, profile, k8s version, k8s-rb-profile-k8s-version", + "creationDate": "2026-03-04T14:55:24.388Z", + "updatedBy": "Rajewski, Lukasz " + }, + { + "name": "update-active-streams", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "update-active-streams", + "name": "update-active-streams", + "property": { + "description": "update-active-streams", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Bruno Sakoto ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "PUT", + "type": "JSON", + "path": "", + "url-path": "$vpg_onap_private_ip_0:8183/restconf/config/stream-count:stream-count/streams", + "input-key-mapping": { + "vpg_onap_private_ip_0": "vpg_onap_private_ip_0", + "data": "data" + }, + "output-key-mapping": {}, + "key-dependencies": [ + "vpg_onap_private_ip_0", + "data" + ], + "endpoint-selector": "vpkg-rest-api", + "payload": "{\"streams\": $data}" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "update-active-streams", + "tags": "update-active-streams", + "creationDate": "2026-03-04T14:55:24.390Z", + "updatedBy": "Bruno Sakoto " + }, + { + "name": "vnf-model-customization-uuid", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vnf-model-customization-uuid", + "name": "vnf-model-customization-uuid", + "property": { + "description": "vnf-model-customization-uuid", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vnf-model-customization-uuid", + "tags": "vnf-model-customization-uuid", + "creationDate": "2026-03-04T14:55:24.445Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vnf_assign_aai", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vnf_assign_aai", + "name": "vnf_assign_aai", + "property": { + "description": "vnf_assign_aai", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "aai-data": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "PATCH", + "type": "JSON", + "headers": { + "Content-Type": "application/merge-patch+json" + }, + "url-path": "/aai/v22/network/generic-vnfs/generic-vnf/$vnf-id", + "payload": "{\r\n\"vnf-name\":\"${vnf_name}\", \r\n \"selflink\": \"restconf/config/GENERIC-RESOURCE-API:services/service/${service-instance-id}/service-data/vnfs/vnf/${vnf-id}/vnf-data/vnf-topology/\"\r\n}", + "path": "", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id", + "vnf_name": "vnf_name" + }, + "output-key-mapping": {}, + "key-dependencies": [ + "service-instance-id", + "vnf-id", + "vnf_name" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vnf_assign_aai", + "tags": "vnf_assign_aai", + "creationDate": "2026-03-04T14:55:24.471Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "create_netbox_ip", + "dataType": "dt-netbox-ip", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "oam-local-ipv4-address", + "name": "create_netbox_ip", + "property": { + "description": "netbox ip", + "required": null, + "type": "dt-netbox-ip", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "adetalhouet", + "sources": { + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "JSON", + "verb": "POST", + "endpoint-selector": "ipam-1", + "url-path": "/api/ipam/prefixes/$prefix-id/available-ips/", + "path": "", + "input-key-mapping": { + "prefix-id": "prefix-id" + }, + "output-key-mapping": { + "address": "address", + "id": "id" + }, + "key-dependencies": [ + "prefix-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "netbox ip", + "tags": "oam-local-ipv4-address", + "creationDate": "2026-03-04T14:55:24.471Z", + "updatedBy": "adetalhouet" + }, + { + "name": "vf-module-assign", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vf-module-assign", + "name": "vf-module-assign", + "property": { + "description": "vf-module-assign", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "aai-data": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "PATCH", + "type": "JSON", + "headers": { + "Content-Type": "application/merge-patch+json" + }, + "url-path": "/aai/v22/network/generic-vnfs/generic-vnf/$vnf-id/vf-modules/vf-module/$vf-module-id", + "payload": "{\r\n\"vf-module-name\":\"${vf-module-name}\", \r\n\"selflink\": \"restconf/config/GENERIC-RESOURCE-API:services/service/${service-instance-id}/service-data/vnfs/vnf/${vnf-id}/vnf-data/vf-modules/vf-module/${vf-module-id}/vf-module-data/vf-module-topology/\"\r\n \r\n}", + "path": "", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id", + "vf-module-id": "vf-module-id", + "vf-module-name": "vf-module-name" + }, + "output-key-mapping": {}, + "key-dependencies": [ + "service-instance-id", + "vnf-id", + "vf-module-id", + "vf-module-name" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf-module-assign", + "tags": "vf-module-assign", + "creationDate": "2026-03-04T14:55:24.471Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "int_private2_subnet_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "int_private2_subnet_id", + "name": "int_private2_subnet_id", + "property": { + "description": "int_private2_subnet_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "int_private2_subnet_id", + "tags": "int_private2_subnet_id", + "creationDate": "2026-03-04T14:55:24.472Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "k8s-rb-instance-release-name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, profile, k8s-rb-instance-release-name", + "name": "k8s-rb-instance-release-name", + "property": { + "description": "Name of the release for the helm package instance in k8s", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Rajewski, Lukasz ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Name of the release for the helm package instance in k8s", + "tags": "k8s, cnf, profile, k8s-rb-instance-release-name", + "creationDate": "2026-03-04T14:55:24.473Z", + "updatedBy": "Rajewski, Lukasz " + }, + { + "name": "nf-role", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "nf-role", + "name": "nf-role", + "property": { + "description": "vnf/nf-role", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "type": "SQL", + "query": "select sdnctl.VF_MODEL.nf_role as vf_model_role from sdnctl.VF_MODEL where sdnctl.VF_MODEL.customization_uuid=:vnfmodelcustomizationuuid", + "input-key-mapping": { + "vnfmodelcustomizationuuid": "vnf-model-customization-uuid" + }, + "output-key-mapping": { + "nf-role": "vf_model_role" + }, + "key-dependencies": [ + "vnf-model-customization-uuid" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vnf/nf-role", + "tags": "nf-role", + "creationDate": "2026-03-04T14:55:24.546Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "unit-number", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "unit-number", + "name": "unit-number", + "property": { + "description": "unit-number", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "adetalhouet", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "unit-number", + "tags": "unit-number", + "creationDate": "2026-03-04T14:55:24.548Z", + "updatedBy": "adetalhouet" + }, + { + "name": "unprotected_private_net_cidr", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "unprotected_private_net_cidr", + "name": "unprotected_private_net_cidr", + "property": { + "description": "unprotected_private_net_cidr", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "type": "SQL", + "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"unprotected\"", + "output-key-mapping": { + "unprotected_private_net_cidr": "prefix" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "unprotected_private_net_cidr", + "tags": "unprotected_private_net_cidr", + "creationDate": "2026-03-04T14:55:24.553Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "address", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "address", + "name": "address", + "property": { + "description": "address", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "address", + "tags": "address", + "creationDate": "2026-03-04T14:55:24.554Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "k8s-rb-config-name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, config, k8s-rb-config-name", + "name": "k8s-rb-config-name", + "property": { + "description": "The source of configuration values for config-deploy operation", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Rajewski, Lukasz ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "The source of configuration values for config-deploy operation", + "tags": "k8s, cnf, config, k8s-rb-config-name", + "creationDate": "2026-03-04T14:55:24.554Z", + "updatedBy": "Rajewski, Lukasz " + }, + { + "name": "k8s-rb-profile-source", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, k8s-rb-profile-source", + "name": "k8s-rb-profile-source", + "property": { + "description": "The source folder or file relative to 'Templates/k8s-profiles' folder", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Lukasz Rajewski ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "The source folder or file relative to 'Templates/k8s-profiles' folder", + "tags": "k8s, cnf, k8s-rb-profile-source", + "creationDate": "2026-03-04T14:55:24.555Z", + "updatedBy": "Lukasz Rajewski " + }, + { + "name": "int_private1_subnet_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "int_private1_subnet_id", + "name": "int_private1_subnet_id", + "property": { + "description": "int_private1_subnet_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Samuli, Silvius ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private1_subnet_id", + "path": "/param/0/value", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "int_private1_subnet_id": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "int_private1_subnet_id", + "tags": "int_private1_subnet_id", + "creationDate": "2026-03-04T14:55:24.556Z", + "updatedBy": "Samuli, Silvius " + }, + { + "name": "vf-module-model-version", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vnf, vf-module, vf-module-model-version", + "name": "vf-module-model-version", + "property": { + "description": "vf-module-model-version", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "type": "SQL", + "query": "select sdnctl.VF_MODULE_MODEL.uuid as vf_module_model_version from sdnctl.VF_MODULE_MODEL where sdnctl.VF_MODULE_MODEL.customization_uuid=:customizationid", + "input-key-mapping": { + "customizationid": "vf-module-model-customization-uuid" + }, + "output-key-mapping": { + "vf-module-model-version": "vf_module_model_version" + }, + "key-dependencies": [ + "vf-module-model-customization-uuid" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf-module-model-version", + "tags": "vnf, vf-module, vf-module-model-version", + "creationDate": "2026-03-04T14:55:24.557Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "protected_private_net_cidr", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "protected_private_net_cidr", + "name": "protected_private_net_cidr", + "property": { + "description": "protected_private_net_cidr", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "type": "SQL", + "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"protected\"", + "output-key-mapping": { + "protected_private_net_cidr": "prefix" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "protected_private_net_cidr", + "tags": "protected_private_net_cidr", + "creationDate": "2026-03-04T14:55:24.557Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "unprotected-prefix-id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "unprotected-prefix-id", + "name": "unprotected-prefix-id", + "property": { + "description": "unprotected-prefix-id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "type": "SQL", + "query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"unprotected\"", + "output-key-mapping": { + "unprotected-prefix-id": "prefix_id" + } + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "unprotected-prefix-id", + "tags": "unprotected-prefix-id", + "creationDate": "2026-03-04T14:55:24.562Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "mdsal-source", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "oam-local-ipv4-address", + "name": "mdsal-source", + "property": { + "description": "based on service-instance-id,network-role,v4-ip-type and vm-type get the ipv4-gateway-prefix from the SDN-GC mdsal", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "brindasanth@onap.com", + "sources": { + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "JSON", + "endpoint-selector": "", + "url-path": "config/L3VNF-API:services/service-list/$service-instance-id/service-data/vnf-topology-information/vnf-assignments/vnf-vms/$vm-type/vm-networks/$network-role/v4-assigned-ip-list/$v4-ip-type", + "path": "/v4-assigned-ip-list/0/v4-ip-prefix", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "network-role": "network-role", + "v4-ip-type": "v4-ip-type", + "vm-type": "vm-type" + }, + "output-key-mapping": { + "oam-local-ipv4-address": "v4-ip-prefix" + }, + "key-dependencies": [ + "service-instance-id", + "network-role", + "v4-ip-type", + "vm-type" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "based on service-instance-id,network-role,v4-ip-type and vm-type get the ipv4-gateway-prefix from the SDN-GC mdsal", + "tags": "oam-local-ipv4-address", + "creationDate": "2026-03-04T14:55:24.566Z", + "updatedBy": "brindasanth@onap.com" + }, + { + "name": "vpg_private_ip_1", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vpg_private_ip_1", + "name": "vpg_private_ip_1", + "property": { + "description": "vpg_private_ip_1", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vpg_private_ip_1", + "tags": "vpg_private_ip_1", + "creationDate": "2026-03-04T14:55:24.662Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "golden-vf-module-type", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "golden-vf-module-type", + "name": "golden-vf-module-type", + "property": { + "description": "golden-vf-module-type", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "adetalhouet", + "sources": { + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "type": "SQL", + "query": "select sdnctl.demo.value as value from sdnctl.demo where sdnctl.demo.id=:vfmoduleid", + "input-key-mapping": { + "vfmoduleid": "vf-module-number" + }, + "output-key-mapping": { + "golden-vf-module-type": "value" + }, + "key-dependencies": [ + "vf-module-number" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "golden-vf-module-type", + "tags": "golden-vf-module-type", + "creationDate": "2026-03-04T14:55:24.662Z", + "updatedBy": "adetalhouet" + }, + { + "name": "repo_url_blob", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "repo_url_blob", + "name": "repo_url_blob", + "property": { + "description": "repo_url_blob", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/repo_url_blob", + "path": "/param/0/value", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "repo_url_blob": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "repo_url_blob", + "tags": "repo_url_blob", + "creationDate": "2026-03-04T14:55:24.665Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vfw_image_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vfw_image_name", + "name": "vfw_image_name", + "property": { + "description": "vfw_image_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "verb": "GET", + "type": "JSON", + "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vfw_image_name", + "path": "/param/0/value", + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "output-key-mapping": { + "vfw_image_name": "value" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vfw_image_name", + "tags": "vfw_image_name", + "creationDate": "2026-03-04T14:55:24.666Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vf_module_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vf_module_name", + "name": "vf_module_name", + "property": { + "description": "vf_module_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf_module_name", + "tags": "vf_module_name", + "creationDate": "2026-03-04T14:55:24.700Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "input-source", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "input-source", + "name": "input-source", + "property": { + "description": "name of the ", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "brindasanth@onap.com", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "name of the ", + "tags": "input-source", + "creationDate": "2026-03-04T14:55:24.765Z", + "updatedBy": "brindasanth@onap.com" + }, + { + "name": "delete_netbox_ip", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "oam-local-ipv4-address", + "name": "delete_netbox_ip", + "property": { + "description": "delete netbox ip", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "adetalhouet", + "sources": { + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "type": "JSON", + "verb": "DELETE", + "endpoint-selector": "ipam-1", + "url-path": "/api/ipam/ip-addresses/$ip-address-id", + "path": "/address", + "input-key-mapping": { + "ip-address-id": "ip-address-id" + }, + "output-key-mapping": {}, + "key-dependencies": [ + "ip-address-id" + ] + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "delete netbox ip", + "tags": "oam-local-ipv4-address", + "creationDate": "2026-03-04T14:55:24.768Z", + "updatedBy": "adetalhouet" + }, + { + "name": "pnf-name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "pnf-name", + "name": "pnf-name", + "property": { + "description": "pnf-name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Rodrigo Ottero ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "pnf-name", + "tags": "pnf-name", + "creationDate": "2026-03-04T14:55:24.771Z", + "updatedBy": "Rodrigo Ottero " + }, + { + "name": "aic_clli", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "aic_clli", + "name": "aic_clli", + "property": { + "description": "aic_clli", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "aic_clli", + "tags": "aic_clli", + "creationDate": "2026-03-04T14:55:24.773Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "k8s-rb-profile-name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "k8s, cnf, k8s-rb-profile-name", + "name": "k8s-rb-profile-name", + "property": { + "description": "Profile name used in multicloud/k8s plugin to identify Helm chart(s) where this mapping is providing override values.", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Lukasz Rajewski ", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "Profile name used in multicloud/k8s plugin to identify Helm chart(s) where this mapping is providing override values.", + "tags": "k8s, cnf, k8s-rb-profile-name", + "creationDate": "2026-03-04T14:55:24.773Z", + "updatedBy": "Lukasz Rajewski " + }, + { + "name": "int_private_subnet_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "int_private_subnet_id", + "name": "int_private_subnet_id", + "property": { + "description": "int_private_subnet_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "int_private_subnet_id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=int_private_subnet_id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "int_private_subnet_id", + "tags": "int_private_subnet_id", + "creationDate": "2026-03-04T14:55:26.264Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "nb_api_version", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "nb_api_version", + "name": "nb_api_version", + "property": { + "description": "nb_api_version", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "nb_api_version": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=nb_api_version", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "nb_api_version", + "tags": "nb_api_version", + "creationDate": "2026-03-04T14:55:26.394Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vfw_onap_private_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vfw_onap_private_ip_0", + "name": "vfw_onap_private_ip_0", + "property": { + "description": "vfw_onap_private_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vfw_onap_private_ip_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vfw_onap_private_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vfw_onap_private_ip_0", + "tags": "vfw_onap_private_ip_0", + "creationDate": "2026-03-04T14:55:26.536Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vlb_image_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vlb_image_name", + "name": "vlb_image_name", + "property": { + "description": "vlb_image_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vlb_image_name": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vlb_image_name", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vlb_image_name", + "tags": "vlb_image_name", + "creationDate": "2026-03-04T14:55:26.675Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vdns_vf_module_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vdns_vf_module_id", + "name": "vdns_vf_module_id", + "property": { + "description": "vdns_vf_module_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "aai-data": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "vnf-id" + ], + "output-key-mapping": { + "vdns_vf_module_id": "nm-profile-name" + }, + "path": "", + "type": "JSON", + "url-path": "/aai/v14/network/generic-vnfs/generic-vnf/$vnf-id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vdns_vf_module_id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vdns_vf_module_id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vdns_vf_module_id", + "tags": "vdns_vf_module_id", + "creationDate": "2026-03-04T14:55:26.823Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vdns_onap_private_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vdns_onap_private_ip_0", + "name": "vdns_onap_private_ip_0", + "property": { + "description": "vdns_onap_private_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vdns_vf_module_id": "vdns_vf_module_id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id", + "vdns_vf_module_id" + ], + "output-key-mapping": { + "vdns_onap_private_ip_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vf-modules/vf-module=$vdns_vf_module_id/vf-module-data/vf-module-topology/vf-module-parameters/param=vdns_onap_private_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vdns_onap_private_ip_0", + "tags": "vdns_onap_private_ip_0", + "creationDate": "2026-03-04T14:55:26.999Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vsn_onap_private_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vsn_onap_private_ip_0", + "name": "vsn_onap_private_ip_0", + "property": { + "description": "vsn_onap_private_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vsn_onap_private_ip_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vsn_onap_private_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vsn_onap_private_ip_0", + "tags": "vsn_onap_private_ip_0", + "creationDate": "2026-03-04T14:55:27.132Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vpg_image_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vpg_image_name", + "name": "vpg_image_name", + "property": { + "description": "vpg_image_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vpg_image_name": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vpg_image_name", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vpg_image_name", + "tags": "vpg_image_name", + "creationDate": "2026-03-04T14:55:27.271Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "install_script_version", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "install_script_version", + "name": "install_script_version", + "property": { + "description": "install_script_version", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "install_script_version": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=install_script_version", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "install_script_version", + "tags": "install_script_version", + "creationDate": "2026-03-04T14:55:27.418Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vdns_flavor_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vdns_flavor_name", + "name": "vdns_flavor_name", + "property": { + "description": "vdns_flavor_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vdns_flavor_name": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vdns_flavor_name", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vdns_flavor_name", + "tags": "vdns_flavor_name", + "creationDate": "2026-03-04T14:55:27.557Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "gre_ipaddr", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "gre_ipaddr", + "name": "gre_ipaddr", + "property": { + "description": "gre_ipaddr", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "gre_ipaddr": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=gre_ipaddr", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "gre_ipaddr", + "tags": "gre_ipaddr", + "creationDate": "2026-03-04T14:55:27.716Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vnf-id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vnf-id", + "name": "vnf-id", + "property": { + "description": "vnf-id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vnf-id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vnf-id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vnf-id", + "tags": "vnf-id", + "creationDate": "2026-03-04T14:55:27.853Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vfw_int_private2_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vfw_int_private2_ip_0", + "name": "vfw_int_private2_ip_0", + "property": { + "description": "vfw_int_private2_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vfw_int_private2_ip_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vfw_int_private2_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vfw_int_private2_ip_0", + "tags": "vfw_int_private2_ip_0", + "creationDate": "2026-03-04T14:55:27.987Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "nfc-naming-code", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "nfc-naming-code", + "name": "nfc-naming-code", + "property": { + "description": "nfc-naming-code", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "vfccustomizationuuid": "vfccustomizationuuid" + }, + "key-dependencies": [ + "vfccustomizationuuid" + ], + "output-key-mapping": { + "nfc-naming-code": "nfc_naming_code" + }, + "query": "select nfc_naming_code as nfc_naming_code from sdnctl.VFC_MODEL where customization_uuid=:vfccustomizationuuid", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "nfc-naming-code", + "tags": "nfc-naming-code", + "creationDate": "2026-03-04T14:55:28.122Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vf_module_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vf_module_id", + "name": "vf_module_id", + "property": { + "description": "vf_module_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf_module_id", + "tags": "vf_module_id", + "creationDate": "2026-03-04T14:55:28.264Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vfw_int_private2_floating_ip", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vfw_int_private2_floating_ip", + "name": "vfw_int_private2_floating_ip", + "property": { + "description": "vfw_int_private2_floating_ip", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vfw_int_private2_floating_ip": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vfw_int_private2_floating_ip", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vfw_int_private2_floating_ip", + "tags": "vfw_int_private2_floating_ip", + "creationDate": "2026-03-04T14:55:28.400Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vlb_flavor_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vlb_flavor_name", + "name": "vlb_flavor_name", + "property": { + "description": "vlb_flavor_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vlb_flavor_name": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vlb_flavor_name", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vlb_flavor_name", + "tags": "vlb_flavor_name", + "creationDate": "2026-03-04T14:55:28.538Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vpg_flavor_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vpg_flavor_name", + "name": "vpg_flavor_name", + "property": { + "description": "vpg_flavor_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vpg_flavor_name": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vpg_flavor_name", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vpg_flavor_name", + "tags": "vpg_flavor_name", + "creationDate": "2026-03-04T14:55:28.681Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vlb_onap_private_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vlb_onap_private_ip_0", + "name": "vlb_onap_private_ip_0", + "property": { + "description": "vlb_onap_private_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "private2-prefix-id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vlb_onap_private_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vlb_onap_private_ip_0", + "tags": "vlb_onap_private_ip_0", + "creationDate": "2026-03-04T14:55:28.822Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "nexus_artifact_repo", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "nexus_artifact_repo", + "name": "nexus_artifact_repo", + "property": { + "description": "nexus_artifact_repo", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "nexus_artifact_repo": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=nexus_artifact_repo", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "nexus_artifact_repo", + "tags": "nexus_artifact_repo", + "creationDate": "2026-03-04T14:55:28.948Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vlb_private_net_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vlb_private_net_id", + "name": "vlb_private_net_id", + "property": { + "description": "vlb_private_net_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vlb_private_net_id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vlb_private_net_id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vlb_private_net_id", + "tags": "vlb_private_net_id", + "creationDate": "2026-03-04T14:55:29.101Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vpg_name_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vpg_name_0", + "name": "vpg_name_0", + "property": { + "description": "vlb_name_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vpg_name_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vpg_name_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vlb_name_0", + "tags": "vpg_name_0", + "creationDate": "2026-03-04T14:55:29.232Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vdns_image_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vdns_image_name", + "name": "vdns_image_name", + "property": { + "description": "vdns_image_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vdns_image_name": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vdns_image_name", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vdns_image_name", + "tags": "vdns_image_name", + "creationDate": "2026-03-04T14:55:29.382Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "int_private_net_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "int_private_net_id", + "name": "int_private_net_id", + "property": { + "description": "int_private_net_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "int_private_net_id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=int_private_net_id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "int_private_net_id", + "tags": "int_private_net_id", + "creationDate": "2026-03-04T14:55:29.521Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vsn_int_private2_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vsn_int_private2_ip_0", + "name": "vsn_int_private2_ip_0", + "property": { + "description": "vsn_int_private2_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vsn_int_private2_ip_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vsn_int_private2_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vsn_int_private2_ip_0", + "tags": "vsn_int_private2_ip_0", + "creationDate": "2026-03-04T14:55:29.660Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vpg_int_pktgen_private_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vpg_int_pktgen_private_ip_0", + "name": "vpg_int_pktgen_private_ip_0", + "property": { + "description": "vpg_int_pktgen_private_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vpg_int_pktgen_private_ip_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vpg_int_pktgen_private_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vpg_int_pktgen_private_ip_0", + "tags": "vpg_int_pktgen_private_ip_0", + "creationDate": "2026-03-04T14:55:29.799Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vip", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vip", + "name": "vip", + "property": { + "description": "vip", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vip": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vip", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vip", + "tags": "vip", + "creationDate": "2026-03-04T14:55:29.944Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "private1-prefix-id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "private1-prefix-id", + "name": "private1-prefix-id", + "property": { + "description": "private1-prefix-id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": {}, + "output-key-mapping": { + "private1-prefix-id": "prefix_id" + }, + "query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"private1\"", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "private1-prefix-id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=private1-prefix-id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "private1-prefix-id", + "tags": "private1-prefix-id", + "creationDate": "2026-03-04T14:55:30.077Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vdns_name_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vdns_name_0", + "name": "vdns_name_0", + "property": { + "description": "vdns_name_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vdns_name_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vdns_name_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vdns_name_0", + "tags": "vdns_name_0", + "creationDate": "2026-03-04T14:55:30.214Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vpg_onap_private_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vpg_onap_private_ip_0", + "name": "vpg_onap_private_ip_0", + "property": { + "description": "vpg_onap_private_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vpg_onap_private_ip_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vpg_onap_private_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vpg_onap_private_ip_0", + "tags": "vpg_onap_private_ip_0", + "creationDate": "2026-03-04T14:55:30.347Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "active-streams", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "active-streams", + "name": "active-streams", + "property": { + "description": "active-streams", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "active-streams", + "tags": "active-streams", + "creationDate": "2026-03-04T14:55:30.476Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vfw_int_private1_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vfw_int_private1_ip_0", + "name": "vfw_int_private1_ip_0", + "property": { + "description": "vfw_int_private1_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vfw_int_private1_ip_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vfw_int_private1_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vfw_int_private1_ip_0", + "tags": "vfw_int_private1_ip_0", + "creationDate": "2026-03-04T14:55:30.610Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "int_private1_net_cidr", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "int_private1_net_cidr", + "name": "int_private1_net_cidr", + "property": { + "description": "int_private1_net_cidr", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": {}, + "output-key-mapping": { + "int_private1_net_cidr": "prefix" + }, + "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private1\"", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "int_private1_net_cidr": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=int_private1_net_cidr", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "int_private1_net_cidr", + "tags": "int_private1_net_cidr", + "creationDate": "2026-03-04T14:55:30.748Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "onap_private_subnet_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "onap_private_subnet_id", + "name": "onap_private_subnet_id", + "property": { + "description": "onap_private_subnet_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "onap_private_subnet_id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=onap_private_subnet_id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "onap_private_subnet_id", + "tags": "onap_private_subnet_id", + "creationDate": "2026-03-04T14:55:30.882Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vf-module-label", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vf-module-label", + "name": "vf-module-label", + "property": { + "description": "vf-module-label", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "customizationid": "vf-module-model-customization-uuid" + }, + "key-dependencies": [ + "vf-module-model-customization-uuid" + ], + "output-key-mapping": { + "vf-module-label": "vf_module_label" + }, + "query": "select sdnctl.VF_MODULE_MODEL.vf_module_label as vf_module_label from sdnctl.VF_MODULE_MODEL where sdnctl.VF_MODULE_MODEL.customization_uuid=:customizationid", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf-module-label", + "tags": "vf-module-label", + "creationDate": "2026-03-04T14:55:31.028Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "dcae_collector_port", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "dcae_collector_port", + "name": "dcae_collector_port", + "property": { + "description": "dcae_collector_port", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "dcae_collector_port": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=dcae_collector_port", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "dcae_collector_port", + "tags": "dcae_collector_port", + "creationDate": "2026-03-04T14:55:31.161Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "create-md-sal-vnf-param", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "create-md-sal-vnf-param", + "name": "create-md-sal-vnf-param", + "property": { + "description": "create-md-sal-vnf-param", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "aai-data": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "vnf-id" + ], + "output-key-mapping": {}, + "path": "", + "payload": "{\"nm-profile-name\":\"$vf-module-id\"}", + "type": "JSON", + "url-path": "/aai/v14/network/generic-vnfs/generic-vnf/$vnf-id/nm-profile-name", + "verb": "PATCH" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vf-module-id": "vf-module-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "vf-module-id", + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": {}, + "path": "", + "payload": "{\n\"GENERIC-RESOURCE-API:param\": [\n{\n\"GENERIC-RESOURCE-API:name\": \"vdns_vf_module_id\",\n\"GENERIC-RESOURCE-API:value\": \"$vf-module-id\"\n}\n]\n}", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vdns_vf_module_id", + "verb": "PUT" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "create-md-sal-vnf-param", + "tags": "create-md-sal-vnf-param", + "creationDate": "2026-03-04T14:55:31.315Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vlb_private_net_cidr", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vlb_private_net_cidr", + "name": "vlb_private_net_cidr", + "property": { + "description": "vlb_private_net_cidr", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": {}, + "output-key-mapping": { + "vlb_private_net_cidr": "prefix" + }, + "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private1\"", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vlb_private_net_cidr": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vlb_private_net_cidr", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vlb_private_net_cidr", + "tags": "vlb_private_net_cidr", + "creationDate": "2026-03-04T14:55:31.458Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vf-naming-policy", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vf-naming-policy", + "name": "vf-naming-policy", + "property": { + "description": "vf-naming-policy", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "vnf_model_customization_uuid": "vnf-model-customization-uuid" + }, + "key-dependencies": [ + "vnf-model-customization-uuid" + ], + "output-key-mapping": { + "vf-naming-policy": "vf_naming_policy" + }, + "query": "select sdnctl.VF_MODEL.naming_policy as vf_naming_policy from sdnctl.VF_MODEL where sdnctl.VF_MODEL.customization_uuid=:vnf_model_customization_uuid", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vf-naming-policy": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vf-naming-policy", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf-naming-policy", + "tags": "vf-naming-policy", + "creationDate": "2026-03-04T14:55:31.593Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "sec_group", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "sec_group", + "name": "sec_group", + "property": { + "description": "sec_group", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "sec_group": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=sec_group", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "sec_group", + "tags": "sec_group", + "creationDate": "2026-03-04T14:55:31.756Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "keypair", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "keypair", + "name": "keypair", + "property": { + "description": "keypair", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "keypair": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=keypair", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "keypair", + "tags": "keypair", + "creationDate": "2026-03-04T14:55:31.893Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "cloud_env", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "cloud_env", + "name": "cloud_env", + "property": { + "description": "cloud_env", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "cloud_env": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=cloud_env", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "cloud_env", + "tags": "cloud_env", + "creationDate": "2026-03-04T14:55:32.030Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "pg_int", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "pg_int", + "name": "pg_int", + "property": { + "description": "pg_int", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "pg_int": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=pg_int", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "pg_int", + "tags": "pg_int", + "creationDate": "2026-03-04T14:55:32.169Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "image_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "image_name", + "name": "image_name", + "property": { + "description": "image_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "image_name": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=image_name", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "image_name", + "tags": "image_name", + "creationDate": "2026-03-04T14:55:32.322Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vlb_int_private_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vlb_int_private_ip_0", + "name": "vlb_int_private_ip_0", + "property": { + "description": "vlb_int_private_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vlb_int_private_ip_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vlb_int_private_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vlb_int_private_ip_0", + "tags": "vlb_int_private_ip_0", + "creationDate": "2026-03-04T14:55:32.458Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "demo_artifacts_version", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "demo_artifacts_version", + "name": "demo_artifacts_version", + "property": { + "description": "demo_artifacts_version", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "demo_artifacts_version": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=demo_artifacts_version", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "demo_artifacts_version", + "tags": "demo_artifacts_version", + "creationDate": "2026-03-04T14:55:32.596Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "int_pktgen_private_subnet_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "int_pktgen_private_subnet_id", + "name": "int_pktgen_private_subnet_id", + "property": { + "description": "int_pktgen_private_subnet_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "int_pktgen_private_subnet_id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=int_pktgen_private_subnet_id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "int_pktgen_private_subnet_id", + "tags": "int_pktgen_private_subnet_id", + "creationDate": "2026-03-04T14:55:32.798Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "onap_private_net_cidr", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "onap_private_net_cidr", + "name": "onap_private_net_cidr", + "property": { + "description": "onap_private_net_cidr", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": {}, + "output-key-mapping": { + "onap_private_net_cidr": "prefix" + }, + "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"management\"", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "onap_private_net_cidr": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=onap_private_net_cidr", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "onap_private_net_cidr", + "tags": "onap_private_net_cidr", + "creationDate": "2026-03-04T14:55:32.951Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vnf_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vnf_name", + "name": "vnf_name", + "property": { + "description": "vnf_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vnf_name": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vnf_name", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vnf_name", + "tags": "vnf_name", + "creationDate": "2026-03-04T14:55:33.084Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "pktgen_private_net_cidr", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "pktgen_private_net_cidr", + "name": "pktgen_private_net_cidr", + "property": { + "description": "pktgen_private_net_cidr", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": {}, + "output-key-mapping": { + "pktgen_private_net_cidr": "prefix" + }, + "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private2\"", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "pktgen_private_net_cidr": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=pktgen_private_net_cidr", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "pktgen_private_net_cidr", + "tags": "pktgen_private_net_cidr", + "creationDate": "2026-03-04T14:55:33.218Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "private-prefix-id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "private-prefix-id", + "name": "private-prefix-id", + "property": { + "description": "private-prefix-id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": {}, + "output-key-mapping": { + "private-prefix-id": "prefix_id" + }, + "query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"private\"", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "private-prefix-id", + "tags": "private-prefix-id", + "creationDate": "2026-03-04T14:55:33.355Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vlb_0_int_pktgen_private_port_0_mac", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vlb_0_int_pktgen_private_port_0_mac", + "name": "vlb_0_int_pktgen_private_port_0_mac", + "property": { + "description": "vlb_0_int_pktgen_private_port_0_mac", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vlb_0_int_pktgen_private_port_0_mac": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vlb_0_int_pktgen_private_port_0_mac", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vlb_0_int_pktgen_private_port_0_mac", + "tags": "vlb_0_int_pktgen_private_port_0_mac", + "creationDate": "2026-03-04T14:55:33.489Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vf-module-name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vf-module-name", + "name": "vf-module-name", + "property": { + "description": "vf-module-name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf-module-name", + "tags": "vf-module-name", + "creationDate": "2026-03-04T14:55:33.632Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vpg_int_private1_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vpg_int_private1_ip_0", + "name": "vpg_int_private1_ip_0", + "property": { + "description": "vpg_int_private1_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vpg_int_private1_ip_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vpg_int_private1_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vpg_int_private1_ip_0", + "tags": "vpg_int_private1_ip_0", + "creationDate": "2026-03-04T14:55:33.769Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vfccustomizationuuid", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vfccustomizationuuid", + "name": "vfccustomizationuuid", + "property": { + "description": "vfccustomizationuuid", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "vfmodulecustomizationuuid": "vf-module-model-customization-uuid" + }, + "key-dependencies": [ + "vf-module-model-customization-uuid" + ], + "output-key-mapping": { + "vfccustomizationuuid": "vnf_customid" + }, + "query": "select sdnctl.VF_MODULE_TO_VFC_MAPPING.vfc_customization_uuid as vnf_customid from sdnctl.VF_MODULE_TO_VFC_MAPPING where vm_count = 1 and sdnctl.VF_MODULE_TO_VFC_MAPPING.vf_module_customization_uuid=:vfmodulecustomizationuuid", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vfccustomizationuuid", + "tags": "vfccustomizationuuid", + "creationDate": "2026-03-04T14:55:33.901Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "dcae_collector_ip", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "dcae_collector_ip", + "name": "dcae_collector_ip", + "property": { + "description": "dcae_collector_ip", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "dcae_collector_ip": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=dcae_collector_ip", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "dcae_collector_ip", + "tags": "dcae_collector_ip", + "creationDate": "2026-03-04T14:55:34.048Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vf-module-model-customization-uuid", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vf-module-model-customization-uuid", + "name": "vf-module-model-customization-uuid", + "property": { + "description": "vf-module-model-customization-uuid", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf-module-model-customization-uuid", + "tags": "vf-module-model-customization-uuid", + "creationDate": "2026-03-04T14:55:34.186Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vm-type", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vm-type", + "name": "vm-type", + "property": { + "description": "vm-type", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "vfccustomizationuuid": "vfccustomizationuuid" + }, + "key-dependencies": [ + "vfccustomizationuuid" + ], + "output-key-mapping": { + "vm-type": "vm_type" + }, + "query": "select VFC_MODEL.vm_type as vm_type from VFC_MODEL where customization_uuid=:vfccustomizationuuid", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vm-type", + "tags": "vm-type", + "creationDate": "2026-03-04T14:55:34.347Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "management-prefix-id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "management-prefix-id", + "name": "management-prefix-id", + "property": { + "description": "management-prefix-id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": {}, + "output-key-mapping": { + "management-prefix-id": "prefix_id" + }, + "query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"management\"", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "management-prefix-id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=management-prefix-id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "management-prefix-id", + "tags": "management-prefix-id", + "creationDate": "2026-03-04T14:55:34.497Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "public_net_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "public_net_id", + "name": "public_net_id", + "property": { + "description": "public_net_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "public_net_id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=public_net_id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "public_net_id", + "tags": "public_net_id", + "creationDate": "2026-03-04T14:55:34.750Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "flavor_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "flavor_name", + "name": "flavor_name", + "property": { + "description": "flavor_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "flavor_name": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=flavor_name", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "flavor_name", + "tags": "flavor_name", + "creationDate": "2026-03-04T14:55:34.928Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "int_private2_net_cidr", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", "definition": { - "tags": "network,host,demo", - "updated-by": "admin", + "tags": "int_private2_net_cidr", + "name": "int_private2_net_cidr", + "property": { + "description": "int_private2_net_cidr", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, "input": { + "description": null, "type": "source-input", - "properties": {} + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": {}, + "output-key-mapping": { + "int_private2_net_cidr": "prefix" + }, + "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private2\"", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "int_private2_net_cidr": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=int_private2_net_cidr", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null } + } + }, + "description": "int_private2_net_cidr", + "tags": "int_private2_net_cidr", + "creationDate": "2026-03-04T14:55:35.078Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "private2-prefix-id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "private2-prefix-id", + "name": "private2-prefix-id", + "property": { + "description": "private2-prefix-id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": {}, + "output-key-mapping": { + "private2-prefix-id": "prefix_id" + }, + "query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"private2\"", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "private2-prefix-id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=private2-prefix-id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "private2-prefix-id", + "tags": "private2-prefix-id", + "creationDate": "2026-03-04T14:55:35.250Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "pub_key", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "pub_key", + "name": "pub_key", "property": { - "required": true, + "description": "pub_key", + "required": null, "type": "string", - "description": "The hostname of the VNF component" + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "pub_key": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=pub_key", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } } - } + }, + "description": "pub_key", + "tags": "pub_key", + "creationDate": "2026-03-04T14:55:35.391Z", + "updatedBy": "MALAKOV, YURIY " }, { - "name": "vnf-id", - "tags": "vnf,id,demo", - "updatedBy": "admin", - "updatedDate": "2024-01-10T00:00:00.000Z", + "name": "put-active-streams", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", "definition": { - "tags": "vnf,id,demo", - "updated-by": "admin", + "tags": "put-active-streams", + "name": "put-active-streams", + "property": { + "description": "put-active-streams", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, "input": { + "description": null, "type": "source-input", - "properties": {} + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null }, - "aai": { + "sdnc": { + "description": null, "type": "source-rest", + "metadata": null, + "directives": null, "properties": { - "url-path": "/network/generic-vnfs/generic-vnf/{vnf-id}" - } + "input-key-mapping": { + "active-streams": "active-streams", + "vpg_onap_private_ip_0": "vpg_onap_private_ip_0" + }, + "key-dependencies": [ + "vpg_onap_private_ip_0", + "active-streams" + ], + "output-key-mapping": {}, + "path": "/param/0/value", + "payload": "{\"streams\": {\"active-streams\": $active-streams}}", + "type": "JSON", + "url-path": "$vpg_onap_private_ip_0:8183/rests/data/stream-count:stream-count/streams", + "verb": "PUT" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null } + } + }, + "description": "put-active-streams", + "tags": "put-active-streams", + "creationDate": "2026-03-04T14:55:35.520Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vdns_int_private_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vdns_int_private_ip_0", + "name": "vdns_int_private_ip_0", + "property": { + "description": "vdns_int_private_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vdns_vf_module_id": "vdns_vf_module_id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id", + "vdns_vf_module_id" + ], + "output-key-mapping": { + "vdns_int_private_ip_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vf-modules/vf-module=$vdns_vf_module_id/vf-module-data/vf-module-topology/vf-module-parameters/param=vdns_int_private_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vdns_int_private_ip_0", + "tags": "vdns_int_private_ip_0", + "creationDate": "2026-03-04T14:55:35.651Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vlb_name_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vlb_name_0", + "name": "vlb_name_0", "property": { - "required": true, + "description": "vlb_name_0", + "required": null, "type": "string", - "description": "The VNF identifier" + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vlb_name_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vlb_name_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } } - } + }, + "description": "vlb_name_0", + "tags": "vlb_name_0", + "creationDate": "2026-03-04T14:55:35.789Z", + "updatedBy": "MALAKOV, YURIY " }, { - "name": "v-server-ip", - "tags": "network,ip,server", - "updatedBy": "designer", - "updatedDate": "2024-02-05T00:00:00.000Z", + "name": "onap_private_net_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", "definition": { - "tags": "network,ip,server", - "updated-by": "designer", + "tags": "onap_private_net_id", + "name": "onap_private_net_id", + "property": { + "description": "onap_private_net_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", "sources": { "default": { + "description": null, "type": "source-default", - "properties": {} + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "onap_private_net_id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=onap_private_net_id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null } + } + }, + "description": "onap_private_net_id", + "tags": "onap_private_net_id", + "creationDate": "2026-03-04T14:55:36.102Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vf-module-type", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vf-module-type", + "name": "vf-module-type", + "property": { + "description": "vf-module-type", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "customizationid": "vf-module-model-customization-uuid" + }, + "key-dependencies": [ + "vf-module-model-customization-uuid" + ], + "output-key-mapping": { + "vf-module-type": "vf_module_type" + }, + "query": "select vf_module_type as vf_module_type from sdnctl.VF_MODULE_MODEL where customization_uuid=:customizationid", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vf-module-type", + "tags": "vf-module-type", + "creationDate": "2026-03-04T14:55:36.377Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vnfc-model-invariant-uuid", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vnfc-model-invariant-uuid", + "name": "vnfc-model-invariant-uuid", "property": { - "required": false, + "description": "vnfc-model-invariant-uuid", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "vfccustomizationuuid": "vfccustomizationuuid" + }, + "key-dependencies": [ + "vfccustomizationuuid" + ], + "output-key-mapping": { + "vnfc-model-invariant-uuid": "vfc_invariant_uuid" + }, + "query": "select VFC_MODEL.invariant_uuid as vfc_invariant_uuid from VFC_MODEL where customization_uuid=:vfccustomizationuuid", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vnfc-model-invariant-uuid", + "tags": "vnfc-model-invariant-uuid", + "creationDate": "2026-03-04T14:55:36.664Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "key_name", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "key_name", + "name": "key_name", + "property": { + "description": "key_name", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "key_name": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=key_name", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "key_name", + "tags": "key_name", + "creationDate": "2026-03-04T14:55:36.916Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "pktgen_private_net_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "pktgen_private_net_id", + "name": "pktgen_private_net_id", + "property": { + "description": "pktgen_private_net_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "pktgen_private_net_id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=pktgen_private_net_id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "pktgen_private_net_id", + "tags": "pktgen_private_net_id", + "creationDate": "2026-03-04T14:55:37.075Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vsn_name_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vsn_name_0", + "name": "vsn_name_0", + "property": { + "description": "vsn_name_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vsn_name_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vsn_name_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vsn_name_0", + "tags": "vsn_name_0", + "creationDate": "2026-03-04T14:55:37.213Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "vnfc-model-version", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vnfc-model-version", + "name": "vnfc-model-version", + "property": { + "description": "vnfc-model-version", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "processor-db": { + "description": null, + "type": "source-db", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "vfccustomizationuuid": "vfccustomizationuuid" + }, + "key-dependencies": [ + "vfccustomizationuuid" + ], + "output-key-mapping": { + "vnfc-model-version": "vnfc_model_version" + }, + "query": "select VFC_MODEL.version as vnfc_model_version from VFC_MODEL where customization_uuid=:vfccustomizationuuid", + "type": "SQL" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vnfc-model-version", + "tags": "vnfc-model-version", + "creationDate": "2026-03-04T14:55:37.358Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vlb_int_pktgen_private_ip_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vlb_int_pktgen_private_ip_0", + "name": "vlb_int_pktgen_private_ip_0", + "property": { + "description": "vlb_int_pktgen_private_ip_0", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vlb_int_pktgen_private_ip_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vlb_int_pktgen_private_ip_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vlb_int_pktgen_private_ip_0", + "tags": "vlb_int_pktgen_private_ip_0", + "creationDate": "2026-03-04T14:55:37.494Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "int_pktgen_private_net_id", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "int_pktgen_private_net_id", + "name": "int_pktgen_private_net_id", + "property": { + "description": "int_pktgen_private_net_id", + "required": null, + "type": "string", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "MALAKOV, YURIY ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "int_pktgen_private_net_id": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=int_pktgen_private_net_id", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "int_pktgen_private_net_id", + "tags": "int_pktgen_private_net_id", + "creationDate": "2026-03-04T14:55:37.628Z", + "updatedBy": "MALAKOV, YURIY " + }, + { + "name": "vfw_name_0", + "dataType": "string", + "entrySchema": null, + "resourceDictionaryGroup": "default", + "definition": { + "tags": "vfw_name_0", + "name": "vfw_name_0", + "property": { + "description": "vfw_name_0", + "required": null, "type": "string", - "description": "Server IP address" + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": null, + "external-schema": null + }, + "group": "default", + "updated-by": "Singal, Kapil ", + "sources": { + "default": { + "description": null, + "type": "source-default", + "metadata": null, + "directives": null, + "properties": {}, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": null, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + }, + "sdnc": { + "description": null, + "type": "source-rest", + "metadata": null, + "directives": null, + "properties": { + "input-key-mapping": { + "service-instance-id": "service-instance-id", + "vnf-id": "vnf-id" + }, + "key-dependencies": [ + "service-instance-id", + "vnf-id" + ], + "output-key-mapping": { + "vfw_name_0": "value" + }, + "path": "/GENERIC-RESOURCE-API:param/0/value", + "type": "JSON", + "url-path": "/rests/data/GENERIC-RESOURCE-API:services/service=$service-instance-id/service-data/vnfs/vnf=$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param=vfw_name_0", + "verb": "GET" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } + } + }, + "description": "vfw_name_0", + "tags": "vfw_name_0", + "creationDate": "2026-03-04T14:55:37.763Z", + "updatedBy": "Singal, Kapil " + }, + { + "name": "some-dict", + "dataType": "some_datatype", + "entrySchema": "whatever", + "resourceDictionaryGroup": "default", + "definition": { + "tags": "", + "name": "some-dict", + "property": { + "description": "Some package", + "required": false, + "type": "some_datatype", + "status": null, + "constraints": null, + "metadata": null, + "value": null, + "input-param": null, + "default": null, + "entry_schema": { + "type": "whatever", + "constraints": [] + }, + "external-schema": null + }, + "group": "default", + "updated-by": "ahmed.eldeeb.ext@orange.com", + "sources": { + "input": { + "description": null, + "type": "source-input", + "metadata": null, + "directives": null, + "properties": { + "foo": "bar" + }, + "attributes": null, + "capabilities": null, + "requirements": null, + "interfaces": null, + "artifacts": null, + "copy": null, + "node_filter": null + } } - } + }, + "description": "Some package", + "tags": "some-dict, ahmed.eldeeb.ext@orange.com", + "creationDate": "2026-03-05T07:04:40.917Z", + "updatedBy": "ahmed.eldeeb.ext@orange.com" } -] +] \ No newline at end of file diff --git a/cds-ui/e2e-playwright/mock-processor/server.js b/cds-ui/e2e-playwright/mock-processor/server.js index 3def580ad..24357b582 100644 --- a/cds-ui/e2e-playwright/mock-processor/server.js +++ b/cds-ui/e2e-playwright/mock-processor/server.js @@ -70,6 +70,14 @@ function pagedResponse(items, query) { const sliced = items.slice(offset, offset + limit); return { content: sliced, + pageable: { + pageNumber: page, + pageSize: limit, + sort: { sorted: true, unsorted: false, empty: false }, + offset: offset, + unpaged: false, + paged: true, + }, totalElements: items.length, totalPages: Math.ceil(items.length / limit), size: limit, @@ -82,8 +90,18 @@ function pagedResponse(items, query) { }; } -/** Return the smallest valid ZIP binary (4 bytes of PK magic). */ -function minimalZip() { +const CBA_ZIPS = path.join(FIXTURES, 'cba-zips'); + +/** + * Load a real CBA ZIP from fixtures/cba-zips/ for the given name+version. + * Falls back to a minimal 4-byte PK header if the file does not exist. + */ +function loadCbaZip(name, version) { + const zipPath = path.join(CBA_ZIPS, `${name}-${version}.zip`); + if (fs.existsSync(zipPath)) { + return fs.readFileSync(zipPath); + } + // Fallback: smallest valid ZIP binary (4 bytes of PK magic). return Buffer.from('504b0304', 'hex'); } @@ -149,7 +167,7 @@ const server = http.createServer(async (req, res) => { if (method === 'GET' && (m = pathname.match(`^${BASE}/blueprint-model/download/by-name/([^/]+)/version/([^/]+)$`))) { const [, name, version] = m; - const buf = minimalZip(); + const buf = loadCbaZip(decodeURIComponent(name), decodeURIComponent(version)); res.writeHead(200, { 'Content-Type': 'application/zip', 'Content-Disposition': `attachment; filename="${name}-${version}.zip"`, @@ -164,10 +182,13 @@ const server = http.createServer(async (req, res) => { } // GET /api/v1/blueprint-model/:id + // Returns the blueprint wrapped in an array so the LoopBack BFF's + // responsePath "$.*" extracts it as [{ … }] rather than an array of + // bare property values. if (method === 'GET' && (m = pathname.match(`^${BASE}/blueprint-model/([^/]+)$`))) { const bp = blueprints.find(b => b.id === m[1]); - return bp ? json(res, bp) : json(res, { error: 'not found' }, 404); + return bp ? json(res, [bp]) : json(res, { error: 'not found' }, 404); } // DELETE /api/v1/blueprint-model/:id @@ -179,7 +200,11 @@ const server = http.createServer(async (req, res) => { // POST /api/v1/blueprint-model/enrich – returns enriched CBA zip if (method === 'POST' && (pathname === `${BASE}/blueprint-model/enrich` || pathname === `${BASE}/blueprint-model/enrich/`)) { await readBody(req); // drain multipart body - const buf = minimalZip(); + // Return the first available CBA zip as the 'enriched' result + const firstBp = blueprints[0]; + const buf = firstBp + ? loadCbaZip(firstBp.artifactName, firstBp.artifactVersion) + : Buffer.from('504b0304', 'hex'); res.writeHead(200, { 'Content-Type': 'application/zip', 'Content-Disposition': 'attachment; filename="enriched.zip"', diff --git a/cds-ui/e2e-playwright/tests/designer.spec.ts b/cds-ui/e2e-playwright/tests/designer.spec.ts new file mode 100644 index 000000000..28ca8a381 --- /dev/null +++ b/cds-ui/e2e-playwright/tests/designer.spec.ts @@ -0,0 +1,339 @@ +/* + * designer.spec.ts + * + * End-to-end tests for the Designer canvas, focusing on the canvas panning + * feature. These tests verify: + * 1. Page structure – the designer component and JointJS board paper render. + * 2. Cursor feedback – the canvas shows a "grab" cursor and switches to + * "grabbing" while the user is panning. + * 3. Canvas panning – dragging on blank canvas space translates the JointJS + * viewport (the g.joint-layers element's transform attribute changes). + * + * Fixture data (mock-processor/fixtures/blueprints.json): + * RT-resource-resolution id: 66bfe8a0-4789-4b5d-ad7f-f2157e3a2021 v1.0.0 + * + * The mock-processor serves: + * GET /api/v1/blueprint-model/:id → single blueprint metadata + * GET /api/v1/blueprint-model/download/… → RT-resource-resolution-1.0.0.zip + * + * Panning tests click/drag in the bottom-right 20 % of the visible canvas + * area. Action nodes rendered by dagre are placed from the top-left, so the + * bottom-right corner is reliably free of cells (blank canvas), ensuring + * blank:pointerdown fires and drives the pan logic. + */ + +import { test, expect } from '@playwright/test'; + +// ── fixture constants ───────────────────────────────────────────────────────── + +// RT-resource-resolution 1.0.0 – first entry in blueprints.json +const FIXTURE_ID = '66bfe8a0-4789-4b5d-ad7f-f2157e3a2021'; +const DESIGNER_URL = `/#/packages/designer/${FIXTURE_ID};actionName=`; + +// ── helpers ─────────────────────────────────────────────────────────────────── + +async function gotoDesigner(page: import('@playwright/test').Page) { + await page.goto(DESIGNER_URL); + await page.waitForLoadState('networkidle'); +} + +/** Wait until the JointJS paper SVG and its layers group are in the DOM. */ +async function waitForBoardPaper(page: import('@playwright/test').Page) { + await expect(page.locator('#board-paper svg')).toBeAttached({ timeout: 30_000 }); + await expect(page.locator('#board-paper .joint-layers')).toBeAttached({ timeout: 15_000 }); +} + +/** + * Parse tx/ty from a JointJS transform string. + * JointJS uses "matrix(sx,shy,shx,sy,tx,ty)" notation. + */ +function parseTranslate(transform: string): { tx: number; ty: number } { + const m = transform.match( + /matrix\([\d.e+-]+,[\d.e+-]+,[\d.e+-]+,[\d.e+-]+,([-\d.e+-]+),([-\d.e+-]+)\)/, + ); + if (m) { return { tx: parseFloat(m[1]), ty: parseFloat(m[2]) }; } + + const t = transform.match(/translate\(([-\d.e+-]+)[, ]*([-\d.e+-]+)\)/); + if (t) { return { tx: parseFloat(t[1]), ty: parseFloat(t[2]) }; } + + return { tx: 0, ty: 0 }; +} + +/** Read the current translate of the JointJS board paper viewport from the DOM. */ +async function getBoardTranslate( + page: import('@playwright/test').Page, +): Promise<{ tx: number; ty: number }> { + const transform = + (await page.locator('#board-paper .joint-layers').getAttribute('transform')) ?? ''; + return parseTranslate(transform); +} + +// ── page structure ──────────────────────────────────────────────────────────── + +test.describe('Designer – page structure', () => { + test.beforeEach(async ({ page }) => { + await gotoDesigner(page); + await waitForBoardPaper(page); + }); + + test('app-designer component is rendered', async ({ page }) => { + await expect(page.locator('app-designer')).toBeAttached({ timeout: 10_000 }); + }); + + test('#board-paper element is present', async ({ page }) => { + await expect(page.locator('#board-paper')).toBeAttached(); + }); + + test('#board-paper contains a JointJS SVG', async ({ page }) => { + await expect(page.locator('#board-paper svg')).toBeAttached(); + }); + + test('#board-paper SVG has JointJS layers group', async ({ page }) => { + await expect(page.locator('#board-paper .joint-layers')).toBeAttached(); + }); +}); + +// ── cursor feedback ─────────────────────────────────────────────────────────── + +test.describe('Designer – canvas cursor', () => { + test.beforeEach(async ({ page }) => { + await gotoDesigner(page); + await waitForBoardPaper(page); + }); + + test('board paper SVG has grab cursor by default', async ({ page }) => { + const cursor = await page + .locator('#board-paper svg') + .evaluate(el => window.getComputedStyle(el).cursor); + expect(cursor).toBe('grab'); + }); + + test('cursor changes to grabbing while mouse button is held on blank canvas', async ({ page }) => { + const boardBox = await page.locator('#board-paper').boundingBox(); + if (!boardBox) { throw new Error('#board-paper has no bounding box'); } + + // Bottom-right 20 % of the canvas is blank (no action nodes rendered there) + const startX = boardBox.x + boardBox.width * 0.8; + const startY = boardBox.y + boardBox.height * 0.8; + + await page.mouse.move(startX, startY); + await page.mouse.down(); + + // Read cursor while button is still held + const cursor = await page + .locator('#board-paper svg') + .evaluate(el => window.getComputedStyle(el).cursor); + + await page.mouse.up(); + + expect(cursor).toBe('grabbing'); + }); + + test('cursor returns to grab after the mouse button is released', async ({ page }) => { + const boardBox = await page.locator('#board-paper').boundingBox(); + if (!boardBox) { throw new Error('#board-paper has no bounding box'); } + + const startX = boardBox.x + boardBox.width * 0.8; + const startY = boardBox.y + boardBox.height * 0.8; + + await page.mouse.move(startX, startY); + await page.mouse.down(); + await page.mouse.move(startX + 50, startY + 50, { steps: 5 }); + await page.mouse.up(); + + const cursor = await page + .locator('#board-paper svg') + .evaluate(el => window.getComputedStyle(el).cursor); + expect(cursor).toBe('grab'); + }); +}); + +// ── canvas panning ──────────────────────────────────────────────────────────── + +test.describe('Designer – canvas panning', () => { + test.beforeEach(async ({ page }) => { + await gotoDesigner(page); + await waitForBoardPaper(page); + }); + + test('dragging on blank canvas translates the JointJS viewport', async ({ page }) => { + const boardBox = await page.locator('#board-paper').boundingBox(); + if (!boardBox) { throw new Error('#board-paper has no bounding box'); } + + const startX = boardBox.x + boardBox.width * 0.8; + const startY = boardBox.y + boardBox.height * 0.8; + const dragDx = 100; + const dragDy = 60; + + const before = await getBoardTranslate(page); + + await page.mouse.move(startX, startY); + await page.mouse.down(); + await page.mouse.move(startX + dragDx, startY + dragDy, { steps: 10 }); + await page.mouse.up(); + + const after = await getBoardTranslate(page); + + // The viewport translation must increase by the drag distance (±1 px rounding) + expect(after.tx).toBeCloseTo(before.tx + dragDx, 0); + expect(after.ty).toBeCloseTo(before.ty + dragDy, 0); + }); + + test('successive drags accumulate correctly in the viewport translation', async ({ page }) => { + const boardBox = await page.locator('#board-paper').boundingBox(); + if (!boardBox) { throw new Error('#board-paper has no bounding box'); } + + const cx = boardBox.x + boardBox.width * 0.8; + const cy = boardBox.y + boardBox.height * 0.8; + + const initial = await getBoardTranslate(page); + + // First drag: 80 px to the right + await page.mouse.move(cx, cy); + await page.mouse.down(); + await page.mouse.move(cx + 80, cy, { steps: 8 }); + await page.mouse.up(); + + // Second drag: 50 px downward + await page.mouse.move(cx, cy); + await page.mouse.down(); + await page.mouse.move(cx, cy + 50, { steps: 5 }); + await page.mouse.up(); + + const final = await getBoardTranslate(page); + + expect(final.tx).toBeCloseTo(initial.tx + 80, 0); + expect(final.ty).toBeCloseTo(initial.ty + 50, 0); + }); + + test('moving the mouse without pressing does not pan the canvas', async ({ page }) => { + const boardBox = await page.locator('#board-paper').boundingBox(); + if (!boardBox) { throw new Error('#board-paper has no bounding box'); } + + const before = await getBoardTranslate(page); + + // Freely move across the canvas without holding a button + await page.mouse.move( + boardBox.x + boardBox.width * 0.5, + boardBox.y + boardBox.height * 0.5, + ); + await page.mouse.move( + boardBox.x + boardBox.width * 0.8, + boardBox.y + boardBox.height * 0.8, + { steps: 10 }, + ); + + const after = await getBoardTranslate(page); + + expect(after.tx).toBeCloseTo(before.tx, 1); + expect(after.ty).toBeCloseTo(before.ty, 1); + }); + + test('releasing the mouse outside the canvas stops panning', async ({ page }) => { + const boardBox = await page.locator('#board-paper').boundingBox(); + if (!boardBox) { throw new Error('#board-paper has no bounding box'); } + + const startX = boardBox.x + boardBox.width * 0.8; + const startY = boardBox.y + boardBox.height * 0.8; + + // Drag inside canvas, then move outside and release + await page.mouse.move(startX, startY); + await page.mouse.down(); + await page.mouse.move(startX + 50, startY + 30, { steps: 5 }); + await page.mouse.move(5, 5, { steps: 5 }); // outside viewport + await page.mouse.up(); + + const afterFirstDrag = await getBoardTranslate(page); + + // Move back inside canvas without pressing – must NOT pan + await page.mouse.move(startX, startY, { steps: 5 }); + await page.mouse.move(startX + 100, startY + 100, { steps: 10 }); + + const afterFreeMouse = await getBoardTranslate(page); + + expect(afterFreeMouse.tx).toBeCloseTo(afterFirstDrag.tx, 1); + expect(afterFreeMouse.ty).toBeCloseTo(afterFirstDrag.ty, 1); + }); +}); + +// ── canvas element click opens sidepane ─────────────────────────────────────── +// +// RT-resource-resolution topology: +// action: resource-resolution +// function: helloworld (embedded board.FunctionElement inside the action) +// +// The sidepane opens only on a clean click (no drag). These tests verify: +// 1. A clean click on an action node opens the Action Attributes sidepane. +// 2. A drag on an action node does NOT open the sidepane. +// 3. A clean click on a function node opens the Function Attributes sidepane. + +test.describe('Designer – canvas element click opens sidepane', () => { + + /** Returns the viewport center {x, y} of the first JointJS canvas element + * whose #label tspan contains exactly the given text. */ + async function getCanvasElementCenter( + page: import('@playwright/test').Page, + label: string, + ): Promise<{ x: number; y: number }> { + // Wait until the element is rendered on the board paper. + await expect( + page.locator('#board-paper tspan').filter({ hasText: label }), + ).toBeAttached({ timeout: 15_000 }); + + const center = await page.evaluate((lbl: string) => { + const tspans = Array.from( + document.querySelectorAll('#board-paper tspan[id="label"]'), + ); + const match = tspans.find(t => t.textContent?.trim() === lbl); + if (!match) { return null; } + const r = match.getBoundingClientRect(); + return { x: r.left + r.width / 2, y: r.top + r.height / 2 }; + }, label); + + if (!center) { throw new Error(`Canvas element labeled "${label}" not found`); } + return center; + } + + test.beforeEach(async ({ page }) => { + await gotoDesigner(page); + await waitForBoardPaper(page); + }); + + test('clean click on an action node opens the Action Attributes sidepane', async ({ page }) => { + const { x, y } = await getCanvasElementCenter(page, 'resource-resolution'); + + await page.mouse.move(x, y); + await page.mouse.down(); + await page.mouse.up(); + + await expect( + page.locator('h6:has-text("Action Attributes")'), + ).toBeInViewport({ timeout: 5_000 }); + }); + + test('dragging an action node does not open the sidepane', async ({ page }) => { + const { x, y } = await getCanvasElementCenter(page, 'resource-resolution'); + + await page.mouse.move(x, y); + await page.mouse.down(); + // Move well beyond the 5 px drag threshold + await page.mouse.move(x + 40, y + 20, { steps: 4 }); + await page.mouse.up(); + + await expect( + page.locator('h6:has-text("Action Attributes")'), + ).not.toBeInViewport({ timeout: 1_000 }); + }); + + test('clean click on a function node opens the Function Attributes sidepane', async ({ page }) => { + const { x, y } = await getCanvasElementCenter(page, 'helloworld'); + + await page.mouse.move(x, y); + await page.mouse.down(); + await page.mouse.up(); + + await expect( + page.locator('h6:has-text("Function Attributes")'), + ).toBeInViewport({ timeout: 5_000 }); + }); +}); diff --git a/cds-ui/e2e-playwright/tests/packages.spec.ts b/cds-ui/e2e-playwright/tests/packages.spec.ts index 550a79b0b..97be42f57 100644 --- a/cds-ui/e2e-playwright/tests/packages.spec.ts +++ b/cds-ui/e2e-playwright/tests/packages.spec.ts @@ -10,11 +10,17 @@ * mock is running the integration tests assert exact HTTP 200 responses * and fixture data rendered in the DOM. * - * Fixture data (from mock-processor/fixtures/blueprints.json): - * vFW-CDS 1.0.0 tags: vFW,firewall,demo - * vDNS-CDS 2.0.0 tags: vDNS,dns,demo - * vLB-CDS 1.1.0 tags: vLB,loadbalancer - * vPE-CDS 3.0.0 tags: vPE,archived,edge + * Fixture data (from mock-processor/fixtures/blueprints.json – real data from + * cds-ui-oom-sm-master.tnaplab.telekom.de): + * RT-resource-resolution 1.0.0 tags: test, regression + * vLB_CDS_KOTLIN 1.0.0 tags: test, vDNS-CDS, SCALE-OUT, MARCO + * vLB_CDS_RESTCONF 1.0.0 tags: vLB-CDS + * vLB_CDS 1.0.0 tags: vLB_CDS + * 5G_Core 2.0.0 tags: Thamlur Raju, Malinconico Aniello Paolo,Vamshi, 5G_Core + * vFW-CDS 1.0.0 tags: vFW-CDS + * pnf_netconf 1.0.0 tags: pnf_netconf + * APACHE 1.0.0 tags: Lukasz Rajewski, CNF + * ubuntu20 1.0.0 tags: ubuntu20 */ import { test, expect } from '@playwright/test'; @@ -27,11 +33,15 @@ import { test, expect } from '@playwright/test'; * template uses *ngFor to render one card per blueprint in the fixture. */ async function waitForPackageCards(page: import('@playwright/test').Page) { - // At least one package name should appear (fixture has 4 blueprints) + // At least one package name should appear (fixture has 9 blueprints) await expect(page.locator('.packageName').first()).toBeVisible({ timeout: 20_000 }); } -const FIXTURE_NAMES = ['vFW-CDS', 'vDNS-CDS', 'vLB-CDS', 'vPE-CDS'] as const; +const FIXTURE_NAMES = [ + 'RT-resource-resolution', 'vLB_CDS_KOTLIN', 'vLB_CDS_RESTCONF', 'vLB_CDS', + '5G_Core', 'vFW-CDS', 'pnf_netconf', 'APACHE', 'ubuntu20', +] as const; +const FIXTURE_COUNT = FIXTURE_NAMES.length; test.describe('Packages Dashboard', () => { test.beforeEach(async ({ page }) => { @@ -167,30 +177,33 @@ test.describe('Packages Dashboard – fixture data loaded from mock', () => { test('package cards render fixture data correctly', async ({ page }) => { // Counts – one card per fixture blueprint - await expect(page.locator('.packageName')).toHaveCount(4, { timeout: 20_000 }); + await expect(page.locator('.packageName')).toHaveCount(FIXTURE_COUNT, { timeout: 20_000 }); - // Each fixture artifact name is visible + // Each fixture artifact name is visible (use anchored regex to avoid substring collisions, + // e.g. 'vLB_CDS' would otherwise also match 'vLB_CDS_KOTLIN' and 'vLB_CDS_RESTCONF') for (const name of FIXTURE_NAMES) { - await expect(page.locator('.packageName', { hasText: name })).toBeVisible(); + await expect( + page.locator('.packageName').filter({ hasText: new RegExp(`^\\s*${name}\\s*$`) }) + ).toBeVisible(); } // Version strings (rendered as "v{artifactVersion}") - for (const v of ['v1.0.0', 'v2.0.0', 'v1.1.0', 'v3.0.0']) { - await expect(page.locator('.package-version', { hasText: v })).toBeVisible(); - } + // 8 blueprints at v1.0.0 and 1 at v2.0.0 + await expect(page.locator('.package-version', { hasText: 'v1.0.0' }).first()).toBeVisible(); + await expect(page.locator('.package-version', { hasText: 'v2.0.0' })).toBeVisible(); - // Deployed icon – only vFW-CDS, vDNS-CDS and vPE-CDS have published: "Y" - await expect(page.locator('img.icon-deployed')).toHaveCount(3); + // Deployed icon – all 9 blueprints have published: "Y" + await expect(page.locator('img.icon-deployed')).toHaveCount(FIXTURE_COUNT); // Description and tags – one element per card, at least one non-empty desc - await expect(page.locator('.package-desc')).toHaveCount(4); + await expect(page.locator('.package-desc')).toHaveCount(FIXTURE_COUNT); await expect(page.locator('.package-desc').first()).not.toBeEmpty(); - await expect(page.locator('.packageTag')).toHaveCount(4); - await expect(page.locator('.packageTag', { hasText: /demo/ }).first()).toBeVisible(); + await expect(page.locator('.packageTag')).toHaveCount(FIXTURE_COUNT); + await expect(page.locator('.packageTag').first()).not.toBeEmpty(); // Action buttons – each card must have both buttons - await expect(page.locator('.btn-card-config')).toHaveCount(4); - await expect(page.locator('.btn-card-topology')).toHaveCount(4); + await expect(page.locator('.btn-card-config')).toHaveCount(FIXTURE_COUNT); + await expect(page.locator('.btn-card-topology')).toHaveCount(FIXTURE_COUNT); }); }); @@ -234,7 +247,7 @@ test.describe('Packages Dashboard – search', () => { await expect(page.locator('.packageName', { hasText: 'vFW-CDS' })).toBeVisible({ timeout: 10_000 }); }); - test('clearing the search term restores all four package cards', async ({ page }) => { + test('clearing the search term restores all package cards', async ({ page }) => { // Filter down to vFW results await page.evaluate(() => { const input = document.querySelector('.searchInput') as HTMLInputElement; @@ -251,7 +264,7 @@ test.describe('Packages Dashboard – search', () => { }); await page.waitForLoadState('networkidle'); - await expect(page.locator('.packageName')).toHaveCount(4, { timeout: 20_000 }); + await expect(page.locator('.packageName')).toHaveCount(FIXTURE_COUNT, { timeout: 20_000 }); }); }); diff --git a/cds-ui/e2e-playwright/tests/resource-dictionary.spec.ts b/cds-ui/e2e-playwright/tests/resource-dictionary.spec.ts index f66e352bb..f4bfa82db 100644 --- a/cds-ui/e2e-playwright/tests/resource-dictionary.spec.ts +++ b/cds-ui/e2e-playwright/tests/resource-dictionary.spec.ts @@ -116,14 +116,15 @@ test.describe('Resource Dictionary – API integration via proxy', () => { }); test('direct GET /resourcedictionary/search/:tags returns matching entries', async ({ request }) => { - const resp = await request.get('http://localhost:3000/resourcedictionary/search/network'); + // 'k8s' is used as the search tag because the fixture contains 13 entries tagged with it. + const resp = await request.get('http://localhost:3000/resourcedictionary/search/k8s'); expect(resp.status()).toBe(200); const body = await resp.json(); expect(Array.isArray(body)).toBe(true); expect(body.length).toBeGreaterThan(0); // Every returned entry must have the searched tag for (const entry of body) { - expect((entry.tags as string)).toContain('network'); + expect((entry.tags as string)).toContain('k8s'); } }); }); @@ -169,8 +170,8 @@ test.describe('Resource Dictionary – paged listing', () => { // Wait for Angular to render the dictionary list items const cards = page.locator('app-dictionary-list .card'); await expect(cards.first()).toBeVisible({ timeout: 10_000 }); - // The fixture has 3 dictionaries + 1 static "Create/Import" card = 4 - await expect(cards).toHaveCount(4); + // The component fetches pageSize=5 dictionaries by default, plus 1 static "Create/Import" card = 6 + await expect(cards).toHaveCount(6); }); test('dictionary header shows correct total count', async ({ page }) => { @@ -181,9 +182,9 @@ test.describe('Resource Dictionary – paged listing', () => { ), page.goto('/#/resource-dictionary'), ]); - // The header shows "Resource Dictionary (N Dictionary)" + // The header shows "Resource Dictionary (N Dictionary)" where N is the total count from the fixture const header = page.locator('app-dictionary-header h2'); - await expect(header).toContainText('3', { timeout: 10_000 }); + await expect(header).toContainText('169', { timeout: 10_000 }); }); }); @@ -211,9 +212,9 @@ test.describe('Resource Dictionary – create then list', () => { page.goto('/#/resource-dictionary'), ]); - // Dictionary list should still render cards (3 dictionaries + 1 create card) + // Dictionary list should still render cards (pageSize=5 dictionaries + 1 create card) const cards = page.locator('app-dictionary-list .card'); await expect(cards.first()).toBeVisible({ timeout: 10_000 }); - await expect(cards).toHaveCount(4); + await expect(cards).toHaveCount(6); }); }); -- 2.16.6