diff --git a/README.md b/README.md
index a20eb346..4f0fd313 100644
--- a/README.md
+++ b/README.md
@@ -80,7 +80,7 @@ Any issues found during implementer review will be found in [MWDI v2.0.1_spec](h
- this e.g. contains updating the testcases
- but also contains an issue related to a possible change in how MWDI interacts with Kafka
-**v1.2.1**
+**v1.2.2**
Spec release version 1.2.2 fixes further findings found by implementers during implementation of v1.2.1.
The list of issues can be found in issue collection [MWDI v1.2.2_spec](https://github.com/openBackhaul/MicroWaveDeviceInventory/milestone/18).
diff --git a/spec/MicroWaveDeviceInventory+services.yaml b/spec/MicroWaveDeviceInventory+services.yaml
index 4bb420c1..50d5c554 100644
--- a/spec/MicroWaveDeviceInventory+services.yaml
+++ b/spec/MicroWaveDeviceInventory+services.yaml
@@ -1546,4 +1546,4 @@ clients:
## unsubscribe from notifications
- operation-name: /v1/end-subscription
- uuid: mwdi-2-0-0-op-c-is-np-1-0-2-020
\ No newline at end of file
+ uuid: mwdi-2-0-0-op-c-is-np-1-0-2-020
diff --git a/testing/2_functional/completeness/v1.2.2/Alarms/README.md b/testing/2_functional/completeness/v1.2.2/Alarms/README.md
new file mode 100644
index 00000000..4f36e2ca
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Alarms/README.md
@@ -0,0 +1,3 @@
+# Functional Testing of Completeness of Alarms
+
+
diff --git a/testing/2_functional/completeness/v1.2.2/Alarms/mwdi+diagram.completeness.alarms.plantuml b/testing/2_functional/completeness/v1.2.2/Alarms/mwdi+diagram.completeness.alarms.plantuml
new file mode 100644
index 00000000..032208e9
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Alarms/mwdi+diagram.completeness.alarms.plantuml
@@ -0,0 +1,26 @@
+@startuml mwdi+diagram.completeness.alarms
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+diagram.completeness.alarms
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+group Preparation
+ Data --\\o Postman : {servers, mount-name}
+ activate Postman
+ Postman --\\o Collection : {servers, mount-name}
+end
+
+group Alarms
+ note right Postman
+ might be transferred into another application
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/completeness/v1.2.2/Alarms/mwdi+diagram.completeness.alarms.png b/testing/2_functional/completeness/v1.2.2/Alarms/mwdi+diagram.completeness.alarms.png
new file mode 100644
index 00000000..8d423eb4
Binary files /dev/null and b/testing/2_functional/completeness/v1.2.2/Alarms/mwdi+diagram.completeness.alarms.png differ
diff --git a/testing/2_functional/completeness/v1.2.2/CC/README.md b/testing/2_functional/completeness/v1.2.2/CC/README.md
new file mode 100644
index 00000000..b51f8962
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/CC/README.md
@@ -0,0 +1,3 @@
+# Functional Testing of Completeness of the ControlConstruct
+
+
diff --git a/testing/2_functional/completeness/v1.2.2/CC/mwdi+diagram.completeness.cc.plantuml b/testing/2_functional/completeness/v1.2.2/CC/mwdi+diagram.completeness.cc.plantuml
new file mode 100644
index 00000000..b80fc907
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/CC/mwdi+diagram.completeness.cc.plantuml
@@ -0,0 +1,26 @@
+@startuml mwdi+diagram.completeness.cc
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.completeness.cc
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+group Preparation
+ Data --\\o Postman : {servers, mount-name}
+ activate Postman
+ Postman --\\o Collection : {servers, mount-name}
+end
+
+group ControlConstruct
+ note right Postman
+ t.b.d.
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/completeness/v1.2.2/CC/mwdi+diagram.completeness.cc.png b/testing/2_functional/completeness/v1.2.2/CC/mwdi+diagram.completeness.cc.png
new file mode 100644
index 00000000..f1e9d884
Binary files /dev/null and b/testing/2_functional/completeness/v1.2.2/CC/mwdi+diagram.completeness.cc.png differ
diff --git a/testing/2_functional/completeness/v1.2.2/CacheEnrichement/README.md b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/README.md
new file mode 100644
index 00000000..b963210c
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/README.md
@@ -0,0 +1,9 @@
+# Functional Testing of Completeness of the Cache Enrichment
+
+
+
+Cache enrichment adds (topology) information to the MWDI cache. Contrary to the other cache and live ressource paths this data is not coming from the devices, but has to be added by other (not yet existing) applications.
+
+Currently the enrichment ressource paths only cover the following objects:
+- link
+- link-port
\ No newline at end of file
diff --git a/testing/2_functional/completeness/v1.2.2/CacheEnrichement/mwdi+data.completeness.cacheEnrichment.json b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/mwdi+data.completeness.cacheEnrichment.json
new file mode 100644
index 00000000..9db7406e
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/mwdi+data.completeness.cacheEnrichment.json
@@ -0,0 +1,58 @@
+[
+ {
+ "mode": "debug",
+ "serverList": [
+ {
+ "serverName": "dummy",
+ "dummyUri": "ping.openBackhaul.com"
+ },
+ {
+ "serverName": "mwdi",
+ "server": "http://IP_ADRESS:PORT",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "YOUR_BASIC_AUTH_CODE",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "mwdi in mwdi+simulator.completeness.cacheEnrichment",
+ "server": "http://localhost:3015",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ }
+ ],
+ "collectionInputList": [
+ {
+ "collectionName": "completeness.cacheEnrichment",
+ "serverToBeApplied": "mwdi",
+ "mountName": "513250004",
+ "linkId": "101550001",
+ "genericLink": "genericLink1",
+ "mfrLink": "mfrLink1",
+ "linkPort": "1",
+ "kindOfReference": "dynamic"
+ },
+ {
+ "collectionName": "completeness.cacheEnrichment_simulator",
+ "serverToBeApplied": "mwdi in mwdi+simulator.completeness.cacheEnrichment",
+ "mountName": "305250001",
+ "linkId": "101550001",
+ "genericLink": "genericLink1",
+ "mfrLink": "mfrLink1",
+ "linkPort": "1",
+ "kindOfReference": "static",
+ "suffixUrlEncodingIsRequired": true
+ }
+ ]
+ }
+]
diff --git a/testing/2_functional/completeness/v1.2.2/CacheEnrichement/mwdi+diagram.completeness.cacheEnrichement.plantuml b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/mwdi+diagram.completeness.cacheEnrichement.plantuml
new file mode 100644
index 00000000..5d18729f
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/mwdi+diagram.completeness.cacheEnrichement.plantuml
@@ -0,0 +1,110 @@
+@startuml mwdi+diagram.completeness.cacheEnrichement
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.cacheEnrichment.dataprovider
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+participant "/core-model-1-4:network-control-domain=cache/link={uuid}" as LINK
+participant "/core-model-1-4:network-control-domain=cache/link={uuid}/link-port={localId}" as LINKPORT
+
+
+group Preparation
+ Data --\\o Postman : {servers, genericLinkId, mfrLinkId, linkPortId}
+ activate Postman
+ Postman --\\o Collection : {servers, genericLinkId, mfrLinkId, linkPortId}
+end
+
+== GET ==
+
+group GET /core-model-1-4:network-control-domain=cache/link={genericLinkId}
+ Collection --\\o Postman : {servers, genericLinkId}
+ Postman -> LINK
+ Postman <-- LINK : {core-model-1-4:link}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group GET /core-model-1-4:network-control-domain=cache/link={mfrLinkId}
+ Collection --\\o Postman : {servers, mfrLinkId}
+ Postman -> LINK
+ Postman <-- LINK : {core-model-1-4:link}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group GET /core-model-1-4:network-control-domain=cache/link={genericLinkId}/link-port={linkPortId}
+ Collection --\\o Postman : {servers, genericLinkId, linkPortId}
+ Postman -> LINKPORT
+ Postman <-- LINKPORT : {core-model-1-4:link-port}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+== PUT ==
+group PUT /core-model-1-4:network-control-domain=cache/link={genericLinkId}
+ Collection --\\o Postman : {servers, genericLinkId}
+ Postman -> LINK : {genericLinkDummyData}
+ Postman <-- LINK
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+group PUT /core-model-1-4:network-control-domain=cache/link={mfrLinkId}
+ Collection --\\o Postman : {servers, mfrLinkId}
+ Postman -> LINK : {mfrLinkDummyData}
+ Postman <-- LINK
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+group PUT /core-model-1-4:network-control-domain=cache/link={genericLinkId}/link-port={linkPortId}
+ Collection --\\o Postman : {servers, genericLinkId, linkPortId}
+ Postman -> LINKPORT : {dummyLinkPortData}
+ Postman <-- LINKPORT
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+== DELETE ==
+
+group DELETE /core-model-1-4:network-control-domain=cache/link={genericLinkId}
+ Collection --\\o Postman : {servers, genericLinkId}
+ Postman -> LINK
+ Postman <-- LINK
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+group DELETE /core-model-1-4:network-control-domain=cache/link={mfrLinkId}
+ Collection --\\o Postman : {servers, mfrLinkId}
+ Postman -> LINK
+ Postman <-- LINK
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+group DELETE /core-model-1-4:network-control-domain=cache/link={genericLinkId}/link-port={linkPortId}
+ Collection --\\o Postman : {servers, genericLinkId, linkPortId}
+ Postman -> LINKPORT
+ Postman <-- LINKPORT
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/completeness/v1.2.2/CacheEnrichement/mwdi+diagram.completeness.cacheEnrichement.png b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/mwdi+diagram.completeness.cacheEnrichement.png
new file mode 100644
index 00000000..94203ca7
Binary files /dev/null and b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/mwdi+diagram.completeness.cacheEnrichement.png differ
diff --git a/testing/2_functional/completeness/v1.2.2/CacheEnrichement/mwdi+testcase.completeness.cacheEnrichment.json b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/mwdi+testcase.completeness.cacheEnrichment.json
new file mode 100644
index 00000000..781cf69d
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/mwdi+testcase.completeness.cacheEnrichment.json
@@ -0,0 +1,3147 @@
+{
+ "info": {
+ "name": "mwdi+testcase.completeness.cacheEnrichment",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "UserInput",
+ "item": [
+ {
+ "name": "for loading user input",
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "exec": [
+ "console.clear();\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "logger.struc(\"===== mwdi+testcase.completeness.cacheEnrichment ==========================\");\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Loading Input Data from File\r",
+ "****************************************************************************************/\r",
+ "var inputFromFile;\r",
+ "try {\r",
+ " inputFromFile = data\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Input data could not be loaded.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Environmental Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.environment.clear();\r",
+ "\r",
+ " let mode;\r",
+ " mode = inputFromFile.mode;\r",
+ " // Mode to be applied while running this testcase collection \r",
+ " // \"analysis\" -> human does detailed analysis of response bodies etc.\r",
+ " // \"testing\" -> automated approval based on binary result\r",
+ " // \"debugging\" -> support for programming the testcase collection\r",
+ "\r",
+ " let logLevel;\r",
+ " switch(mode) {\r",
+ " case \"debugging\":\r",
+ " logLevel = \"debug\";\r",
+ " break;\r",
+ " case \"analysis\":\r",
+ " logLevel = \"log\";\r",
+ " break;\r",
+ " case \"testing\":\r",
+ " logLevel = \"error\";\r",
+ " break;\r",
+ " default:\r",
+ " logLevel = \"debug\";\r",
+ " };\r",
+ " // Level of detail of the logging; find more info in pre-request script on the collection's level\r",
+ "\r",
+ " let serverList = [];\r",
+ " serverList = inputFromFile.serverList;\r",
+ " // list of addresses of applications, controllers etc.\r",
+ " // serverName : key attribute for identifying the servers\r",
+ " // dummyUri : http address that shall be addressed by bare processing Requests\r",
+ " // server : part of the URI that is comprised from protocol, IP address and TCP port\r",
+ " // pathToControlConstruct : part of the URI that is identical for all Requests that are addressing into the device's data tree\r",
+ " // authorizationCode : authentication that has to be sent in case of BasicAuth protection (e.g. OpenDaylight NBI)\r",
+ " // operationKey : ApiKey that has to be sent in case of addressing a MW SDN application (e.g. MicroWaveDeviceInventory)\r",
+ " // userName : user header to be sent in case of addressing a MW SDN application\r",
+ " // originator : originator header to be sent in case of addressing a MW SDN application\r",
+ " // xCorrelator : x-correlator header to be sent in case of addressing a MW SDN application\r",
+ " // traceIndicator : trace-indicator header to be sent in case of addressing a MW SDN application\r",
+ " // customerJourney : customer-journey header to be sent in case of addressing a MW SDN application\r",
+ "\r",
+ " let collectionInputList = [];\r",
+ " collectionInputList = inputFromFile.collectionInputList;\r",
+ " // list of inputs to individual test case collections\r",
+ " // serverToBeApplied : server that shall be addressed in the respective request/test case\r",
+ " // mountName : mountName of the device that is to be validated\r",
+ " // uuid of the object that is to be validated\r",
+ " // localId of the object that is to be validated\r",
+ " // linkId : linkName of the link that is to be validated\r",
+ " // linkPort : id of the linkPort that is to be validated\r",
+ "\r",
+ " pm.environment.set(\"mode\", mode);\r",
+ " pm.environment.set(\"logLevel\", logLevel);\r",
+ " pm.environment.set(\"serverList\", serverList);\r",
+ " pm.environment.set(\"collectionInputList\", collectionInputList);\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Environment variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Collection Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.collectionVariables.clear()\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Collection variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Local Variables and Preparing the Request\r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " let uri;\r",
+ " let dummyServerInfo;\r",
+ " dummyServerInfo = ExtractServerInformation(inputFromFile.serverList, \"dummy\");\r",
+ " uri = dummyServerInfo.dummyUri;\r",
+ "\r",
+ " pm.variables.clear();\r",
+ "\r",
+ " pm.variables.set(\"uri\", uri);\r",
+ "\r",
+ " pm.request.headers.upsert({ key: \"Accept\", value: \"application/json\" });\r",
+ " pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" })\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Local variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Functions\r",
+ "****************************************************************************************/\r",
+ "function ExtractServerInformation(serverList, searchedServerName) {\r",
+ " try {\r",
+ " for(let i=0; i log -> info -> warn -> error -> struc -> none",
+ "// It creates \"logger\" global variable which can be used anywhere in nested collection scripts",
+ "",
+ "const logLevels = [\"debug\", \"log\", \"info\", \"warn\", \"error\", \"struc\", \"none\"];",
+ "",
+ "const shouldLog = (level) => {",
+ " return logLevels.indexOf(level) >= logLevels.indexOf(pm.environment.get(\"logLevel\"));",
+ "};",
+ "",
+ "logger = {",
+ " debug: (message, ...optionalParams) => {",
+ " shouldLog(\"debug\") && console.log(message, ...optionalParams);",
+ " },",
+ " log: (message, ...optionalParams) => {",
+ " shouldLog(\"log\") && console.log(message, ...optionalParams);",
+ " },",
+ " info: (message, ...optionalParams) => {",
+ " shouldLog(\"info\") && console.log(message, ...optionalParams);",
+ " },",
+ " warn: (message, ...optionalParams) => {",
+ " shouldLog(\"warn\") && console.log(message, ...optionalParams);",
+ " },",
+ " error: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.error(message, ...optionalParams);",
+ " },",
+ " struc: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.log(message, ...optionalParams);",
+ " },",
+ "};",
+ ""
+ ]
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/testing/2_functional/completeness/v1.2.2/CacheEnrichement/schema/MicroWaveDeviceInventory+simu.completeness.cacheEnrichment.json b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/schema/MicroWaveDeviceInventory+simu.completeness.cacheEnrichment.json
new file mode 100644
index 00000000..b1b49cff
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/schema/MicroWaveDeviceInventory+simu.completeness.cacheEnrichment.json
@@ -0,0 +1,168 @@
+{
+ "/core-model-1-4:network-control-domain=cache/link={uuid}": {
+ "get": {
+ "type": "object",
+ "properties": {
+ "core-model-1-4:link": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "description": "generic",
+ "type": "object",
+ "required": [
+ "uuid",
+ "layer-protocol-name",
+ "link-direction",
+ "forwarding-domain",
+ "link-port"
+ ],
+ "properties": {
+ "uuid": {
+ "type": "string"
+ },
+ "layer-protocol-name": {
+ "type": "string"
+ },
+ "link-direction": {
+ "type": "string",
+ "enum": [
+ "core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL",
+ "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL",
+ "core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL",
+ "core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN"
+ ]
+ },
+ "forwarding-domain": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "link-port": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "description": "generic",
+ "type": "object",
+ "required": [
+ "local-id",
+ "link-port-direction",
+ "logical-termination-point"
+ ],
+ "properties": {
+ "local-id": {
+ "type": "string"
+ },
+ "link-port-direction": {
+ "type": "string",
+ "enum": [
+ "core-model-1-4:PORT_DIRECTION_INPUT",
+ "core-model-1-4:PORT_DIRECTION_OUTPUT",
+ "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+ "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+ "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN"
+ ]
+ },
+ "logical-termination-point": {
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ {
+ "description": "minimum for rest",
+ "type": "object",
+ "required": [
+ "uuid",
+ "layer-protocol-name",
+ "end-point-list"
+ ],
+ "properties": {
+ "uuid": {
+ "type": "string"
+ },
+ "layer-protocol-name": {
+ "type": "string"
+ },
+ "end-point-list": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "control-construct",
+ "logical-termination-point",
+ "layer-protocol"
+ ],
+ "properties": {
+ "control-construct": {
+ "type": "string"
+ },
+ "logical-termination-point": {
+ "type": "string"
+ },
+ "layer-protocol": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "put": null,
+ "delete": null
+ },
+ "/core-model-1-4:network-control-domain=cache/link={uuid}/link-port={localId}": {
+ "get": {
+ "type": "object",
+ "properties": {
+ "core-model-1-4:link-port": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "description": "generic",
+ "type": "object",
+ "required": [
+ "local-id",
+ "link-port-direction",
+ "logical-termination-point"
+ ],
+ "properties": {
+ "local-id": {
+ "type": "string"
+ },
+ "link-port-direction": {
+ "type": "string",
+ "enum": [
+ "core-model-1-4:PORT_DIRECTION_INPUT",
+ "core-model-1-4:PORT_DIRECTION_OUTPUT",
+ "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+ "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+ "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN"
+ ]
+ },
+ "logical-termination-point": {
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "put": null,
+ "delete": null
+ }
+}
\ No newline at end of file
diff --git a/testing/2_functional/completeness/v1.2.2/CacheEnrichement/schema/MicroWaveDeviceInventory+simu.completeness.cacheEnrichment.yaml b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/schema/MicroWaveDeviceInventory+simu.completeness.cacheEnrichment.yaml
new file mode 100644
index 00000000..9af0e4ff
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/schema/MicroWaveDeviceInventory+simu.completeness.cacheEnrichment.yaml
@@ -0,0 +1,112 @@
+/core-model-1-4:network-control-domain=cache/link={uuid}:
+ get:
+ type: object
+ properties:
+ core-model-1-4:link:
+ type: array
+ items:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+ put:
+ delete:
+/core-model-1-4:network-control-domain=cache/link={uuid}/link-port={localId}:
+ get:
+ type: object
+ properties:
+ core-model-1-4:link-port:
+ type: array
+ items:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+ put:
+ delete:
diff --git a/testing/2_functional/completeness/v1.2.2/CacheEnrichement/simulators/MicroWaveDeviceInventory+simu.completeness.cacheEnrichment.yaml b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/simulators/MicroWaveDeviceInventory+simu.completeness.cacheEnrichment.yaml
new file mode 100644
index 00000000..9947257c
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/CacheEnrichement/simulators/MicroWaveDeviceInventory+simu.completeness.cacheEnrichment.yaml
@@ -0,0 +1,1930 @@
+openapi: 3.0.0
+info:
+ title: MWDI_1.2.2+simulator.completeness.cacheEnrichment
+ version: 1.0.0
+
+paths:
+########################################################################################################################
+# Service Layer - Individual Part
+# MWDI_1.2.2+simulator.completeness.cacheEnrichement in static reference mode
+########################################################################################################################
+
+ /core-model-1-4:network-control-domain=cache/link=genericLink1:
+ parameters:
+ - $ref: '#/components/parameters/uuid'
+ get:
+ operationId: getCachedLink
+ summary: 'Provides generic Link from cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ responses:
+ '200':
+ description: 'Link provided from cache'
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ core-model-1-4:link:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK'
+ example:
+ core-model-1-4:link:
+ - uuid: 'genericLink1'
+ layer-protocol-name: 'layer protocol name for the link'
+ link-direction: 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ forwarding-domain:
+ - 'forwarding domain entry'
+ link-port:
+ - local-id: '1'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_INPUT'
+ logical-termination-point: 'mountnameA+ltpA'
+ - local-id: '2'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ logical-termination-point: 'mountnameB+ltpB'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+ put:
+ operationId: putLinkToCache
+ summary: 'Writes generic Link to cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ core-model-1-4:link:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK'
+ example:
+ core-model-1-4:link:
+ - uuid: 'genericLink1'
+ layer-protocol-name: 'layer protocol name for the link'
+ link-direction: 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ forwarding-domain:
+ - 'forwarding domain entry'
+ link-port:
+ - local-id: '1'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_INPUT'
+ logical-termination-point: 'mountnameA+ltpA'
+ - local-id: '2'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ logical-termination-point: 'mountnameB+ltpB'
+ responses:
+ '204':
+ description: 'Link written to cache'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+ delete:
+ operationId: deleteCachedLink
+ summary: 'Deletes generic Link from cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ responses:
+ '204':
+ description: 'Link deleted from cache'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /core-model-1-4:network-control-domain=cache/link=mfrLink1:
+ parameters:
+ - $ref: '#/components/parameters/uuid'
+ get:
+ operationId: getCachedLink
+ summary: 'Provides mfr Link from cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ responses:
+ '200':
+ description: 'Link provided from cache'
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ core-model-1-4:link:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK'
+ example:
+ core-model-1-4:link:
+ - uuid: 'mfrLink1'
+ layer-protocol-name: 'core-model-1-4:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ end-point-list:
+ - control-construct: '513250009'
+ logical-termination-point: '513250009+LTP-MWPS-TTP-RADIO-2A'
+ layer-protocol: '513250009+LP-MWPS-TTP-RADIO-2A'
+ - control-construct: '513250008'
+ logical-termination-point: '513250008+LTP-MWPS-TTP-RADIO-2A'
+ layer-protocol: '513250008+LP-MWPS-TTP-RADIO-2A'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+ put:
+ operationId: putLinkToCache
+ summary: 'Writes mfr Link to cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ core-model-1-4:link:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK'
+ example:
+ core-model-1-4:link:
+ - uuid: 'mfrLink1'
+ layer-protocol-name: 'core-model-1-4:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ end-point-list:
+ - control-construct: '513250009'
+ logical-termination-point: '513250009+LTP-MWPS-TTP-RADIO-2A'
+ layer-protocol: '513250009+LP-MWPS-TTP-RADIO-2A'
+ - control-construct: '513250008'
+ logical-termination-point: '513250008+LTP-MWPS-TTP-RADIO-2A'
+ layer-protocol: '513250008+LP-MWPS-TTP-RADIO-2A'
+ responses:
+ '204':
+ description: 'Link written to cache'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+ delete:
+ operationId: deleteCachedLink
+ summary: 'Deletes mfr Link from cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ responses:
+ '204':
+ description: 'Link deleted from cache'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+
+
+ /core-model-1-4:network-control-domain=cache/link=genericLink1/link-port=1:
+ parameters:
+ - $ref: '#/components/parameters/uuid'
+ - $ref: '#/components/parameters/localId'
+ get:
+ operationId: getCachedLinkPort
+ summary: 'Provides LinkPort from cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ responses:
+ '200':
+ description: 'LinkPort provided from cache'
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ core-model-1-4:link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ examples:
+ generic:
+ value:
+ core-model-1-4:link-port:
+ - local-id: '1'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_INPUT'
+ logical-termination-point: '51359991A+819.1.1'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+ put:
+ operationId: putLinkPortToCache
+ summary: 'Writes LinkPort to cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ core-model-1-4:link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ examples:
+ generic:
+ value:
+ core-model-1-4:link-port:
+ - local-id: '1'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_INPUT'
+ logical-termination-point: '513270001+2146435233'
+ responses:
+ '204':
+ description: 'LinkPort written to cache'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+ delete:
+ operationId: deleteCachedLinkPort
+ summary: 'Deletes LinkPort from cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ responses:
+ '204':
+ description: 'LinkPort deleted from cache'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+
+########################################################################################################################
+# Common Components
+########################################################################################################################
+components:
+ parameters:
+ user:
+ name: user
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'User Name'
+ description: 'User identifier from the system starting the service call'
+ originator:
+ name: originator
+ in: header
+ required: true
+ schema:
+ type: string
+ minLength: 3
+ example: 'Resolver'
+ description: >
+ 'Identification for the system consuming the API, as defined in
+ [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]'
+ x-correlator:
+ name: x-correlator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ description: 'Empty string accepted from external applications.'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses'
+ trace-indicator:
+ name: trace-indicator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^([0-9]+)(\.([0-9]+))*$'
+ description: 'Empty string accepted from external applications.'
+ example: '1.3.1'
+ description: 'Sequence of request numbers along the flow'
+ customer-journey:
+ name: customer-journey
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'Unknown value'
+ description: 'Holds information supporting customer’s journey to which the execution applies'
+ mountName:
+ name: mountName
+ in: path
+ required: true
+ schema:
+ type: string
+ example: '222250001'
+ description: 'The mountName of the device that is addressed by the request'
+ uuid:
+ name: uuid
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within the device'
+ uuid1:
+ name: uuid1
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Another instance identifier that is unique within the device'
+ localId:
+ name: localId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within its list'
+ fields:
+ name: fields
+ in: query
+ required: false
+ schema:
+ type: string
+ example: 'node(node-id;netconf-node-topology:connection-status)'
+ description: 'Query parameter to filter ressources according to RFC8040 fields filter spec'
+ responses:
+ responseForErroredServiceRequests:
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ responseForErroredOamRequests:
+ description: 'Response in case of errored OaM requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ '429':
+ description: 'Response in case too many requests need to be executed in parallel or too many requests have been received within a time period. The maximum number of parallel requests is defined in an IntegerProfile with the service name as a prefix and MaxNumberOfParallelRequests as a suffix. Some time period to elapse for throttling incomming requests is defined in an IntegerProfile with the service name as a prefix and ThrottlingPeriod as a suffix'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 429
+ maximum: 429
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Too many requests'
+ '460':
+ description: 'Response in case the mountName provided in the request is not found in the list of connected devices'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 460
+ maximum: 460
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not connected. Requested device is currently not in connected state at the controller'
+ '461':
+ description: 'Response in case the (parent) topology object provided in the request (body or path) is not found in the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 461
+ maximum: 461
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not available. The topology (parent) object is currently not found in the cache.'
+ '470':
+ description: 'Response in case the resource specified in the request does not exist within the connected device'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 470
+ maximum: 470
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource not existing. Device informs about addressed resource unknown'
+ '471':
+ description: 'Response in case the (child) topology object specified in the request (body or path) does not exist within the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 471
+ maximum: 471
+ format: int32
+ message:
+ type: string
+ enum:
+ - '(Child) topology object not existing. Cache informs about addressed resource unknown.'
+ '502':
+ description: 'Response in case the server is acting as a gateway or proxy and received an invalid response from the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 502
+ maximum: 502
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway'
+ '530':
+ description: 'Response in case the referenced resource exists (e.g. device connected and resource exists in internal datatree), but response data is either not available, lost during transmission, incomplete or corrupted'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 530
+ maximum: 530
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Data invalid. Response data not available, incomplete or corrupted'
+ '531':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to authenticate at the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 531
+ maximum: 531
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Authentication at upstream server failed.'
+ '532':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to connect to the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 532
+ maximum: 532
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Upstream server not responding.'
+ '533':
+ description: 'Response in case the referenced resource for an connected device does not exist at the controller.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 533
+ maximum: 533
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource unknown. The resource for the connected device does not exist at the Controller.'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ life-cycle-state:
+ schema:
+ type: string
+ enum:
+ - 'EXPERIMENTAL'
+ - 'OPERATIONAL'
+ - 'DEPRECATED'
+ - 'OBSOLETE'
+ - 'UNKNOWN'
+ - 'NOT_YET_DEFINED'
+ example: 'EXPERIMENTAL'
+ schemas:
+ errorDescription:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
+ genericRepresentation:
+ type: object
+ required:
+ - response-value-list
+ - consequent-action-list
+ properties:
+ response-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ - value
+ - datatype
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Field name
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]'
+ value:
+ type: string
+ description: >
+ 'Field value
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]'
+ datatype:
+ type: string
+ description: >
+ 'Field datatype
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]'
+ consequent-action-list:
+ type: array
+ items:
+ type: object
+ required:
+ - label
+ - request
+ - display-in-new-browser-window
+ properties:
+ label:
+ type: string
+ description: >
+ 'Label that shall be presented on the button
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]'
+ request:
+ type: string
+ description: >
+ 'Request that shall be called, when button gets pressed
+ from
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}]
+ ://
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address}
+ or
+ {/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}]
+ :
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}]
+ [{/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]'
+ input-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Name of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]'
+ unit:
+ type: string
+ description: >
+ 'Unit of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]'
+ display-in-new-browser-window:
+ type: boolean
+ description: >
+ 'True in case Request shall be represented in a new browser window
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]'
+ logicalTerminationPoint:
+ type: object
+ required:
+ - uuid
+ - ltp-direction
+ - client-ltp
+ - server-ltp
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-direction:
+ type: string
+ client-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ server-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ layer-protocol:
+ type: array
+ minItems: 1
+ maxItems: 1
+ items:
+ oneOf:
+ - description: 'operation server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-server-interface-1-0:operation-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-server-interface-1-0:operation-server-interface-pac:
+ type: object
+ required:
+ - operation-server-interface-capability
+ - operation-server-interface-configuration
+ properties:
+ operation-server-interface-capability:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-server-interface-configuration:
+ type: object
+ required:
+ - life-cycle-state
+ properties:
+ life-cycle-state:
+ type: string
+ - description: 'http server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-server-interface-1-0:http-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-server-interface-1-0:http-server-interface-pac:
+ type: object
+ required:
+ - http-server-interface-capability
+ properties:
+ http-server-interface-capability:
+ type: object
+ required:
+ - application-name
+ - release-number
+ - data-update-period
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ data-update-period:
+ type: string
+ - description: 'tcp server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-server-interface-1-0:tcp-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-server-interface-1-0:tcp-server-interface-pac:
+ type: object
+ required:
+ - tcp-server-interface-configuration
+ properties:
+ tcp-server-interface-configuration:
+ type: object
+ required:
+ - description
+ - local-protocol
+ - local-address
+ - local-port
+ properties:
+ description:
+ type: string
+ local-protocol:
+ type: string
+ local-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ local-port:
+ type: integer
+ - description: 'operation client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-client-interface-1-0:operation-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-client-interface-1-0:operation-client-interface-pac:
+ type: object
+ required:
+ - operation-client-interface-configuration
+ - operation-client-interface-status
+ properties:
+ operation-client-interface-configuration:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'elasticsearch client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac:
+ type: object
+ required:
+ - elasticsearch-client-interface-configuration
+ - elasticsearch-client-interface-status
+ properties:
+ elasticsearch-client-interface-configuration:
+ type: object
+ required:
+ - index-alias
+ properties:
+ index-alias:
+ type: string
+ elasticsearch-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'http client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-client-interface-1-0:http-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-client-interface-1-0:http-client-interface-pac:
+ type: object
+ required:
+ - http-client-interface-configuration
+ properties:
+ http-client-interface-configuration:
+ type: object
+ required:
+ - application-name
+ - release-number
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ - description: 'tcp client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-client-interface-1-0:tcp-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-client-interface-1-0:tcp-client-interface-pac:
+ type: object
+ required:
+ - tcp-client-interface-configuration
+ properties:
+ tcp-client-interface-configuration:
+ type: object
+ required:
+ - remote-protocol
+ - remote-address
+ - remote-port
+ properties:
+ remote-protocol:
+ type: string
+ remote-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ remote-port:
+ type: integer
+ forwardingDomain:
+ type: object
+ required:
+ - uuid
+ - forwarding-construct
+ properties:
+ uuid:
+ type: string
+ forwarding-construct:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - name
+ - fc-port
+ properties:
+ uuid:
+ type: string
+ name:
+ type: array
+ items:
+ type: object
+ required:
+ - value-name
+ - value
+ properties:
+ value-name:
+ type: string
+ value:
+ type: string
+ fc-port:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ port-direction:
+ type: string
+ logical-termination-point:
+ type: string
+
+ CONTROL_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ - alarms-1-0:alarm-pac
+ - equipment
+ - firmware-1-0:firmware-collection
+ - profile-collection
+ - logical-termination-point
+ properties:
+ uuid:
+ type: string
+ alarms-1-0:alarm-pac:
+ $ref: '#/components/schemas/ALARM_PAC'
+ equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EQUIPMENT'
+ firmware-1-0:firmware-collection:
+ $ref: '#/components/schemas/FIRMWARE_COLLECTION'
+ profile-collection:
+ $ref: '#/components/schemas/PROFILE_COLLECTION'
+ forwarding-domain:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_DOMAIN'
+ logical-termination-point:
+ type: array
+ items:
+ $ref: '#/components/schemas/LOGICAL_TERMINATION_POINT'
+
+ ALARM_PAC:
+ type: object
+ required:
+ - alarm-capability
+ - alarm-configuration
+ - current-alarms
+ - alarm-event-records
+ properties:
+ alarm-capability:
+ $ref: '#/components/schemas/ALARM_CAPABILITY'
+ alarm-configuration:
+ $ref: '#/components/schemas/ALARM_CONFIGURATION'
+ current-alarms:
+ $ref: '#/components/schemas/CURRENT_ALARMS'
+ alarm-event-records:
+ $ref: '#/components/schemas/ALARM_EVENT_RECORDS'
+ ALARM_CAPABILITY:
+ type: object
+ ALARM_CONFIGURATION:
+ type: object
+ CURRENT_ALARMS:
+ type: object
+ ALARM_EVENT_RECORDS:
+ type: object
+
+ EQUIPMENT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ connector:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONNECTOR'
+ contained-holder:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONTAINED_HOLDER'
+ expected-equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EXPECTED_EQUIPMENT'
+ actual-equipment:
+ type: object
+ CONNECTOR:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ CONTAINED_HOLDER:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ EXPECTED_EQUIPMENT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ ACTUAL_EQUIPMENT:
+ type: object
+
+ FIRMWARE_COLLECTION:
+ type: object
+ required:
+ - firmware-component-list
+ properties:
+ firmware-component-list:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_LIST'
+ FIRMWARE_COMPONENT_LIST:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - firmware-component-pac
+ properties:
+ local-id:
+ type: string
+ firmware-component-pac:
+ type: object
+ required:
+ - firmware-component-capability
+ - firmware-component-status
+ properties:
+ firmware-component-capability:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_CAPABILITY'
+ firmware-component-status:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_STATUS'
+ FIRMWARE_COMPONENT_CAPABILITY:
+ type: object
+ FIRMWARE_COMPONENT_STATUS:
+ type: object
+
+ PROFILE_COLLECTION:
+ type: object
+ required:
+ - profile
+ properties:
+ profile:
+ type: array
+ items:
+ $ref: '#/components/schemas/PROFILE'
+ PROFILE:
+ oneOf:
+ - description: 'co-channel-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - co-channel-profile-1-0:co-channel-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'co-channel-profile-1-0:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE'
+ co-channel-profile-1-0:co-channel-profile-pac:
+ type: object
+ required:
+ - co-channel-profile-capability
+ - co-channel-profile-configuration
+ properties:
+ co-channel-profile-capability:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CAPABILITY'
+ co-channel-profile-configuration:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CONFIGURATION'
+ - description: 'policing-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - policing-profile-1-0:policing-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'policing-profile-1-0:PROFILE_NAME_TYPE_POLICING_PROFILE'
+ policing-profile-1-0:policing-profile-pac:
+ type: object
+ required:
+ - policing-profile-capability
+ - policing-profile-configuration
+ properties:
+ policing-profile-capability:
+ $ref: '#/components/schemas/POLICING_PROFILE_CAPABILITY'
+ policing-profile-configuration:
+ $ref: '#/components/schemas/POLICING_PROFILE_CONFIGURATION'
+ - description: 'qos-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - qos-profile-1-0:qos-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'qos-profile-1-0:PROFILE_NAME_TYPE_QOS_PROFILE'
+ qos-profile-1-0:qos-profile-pac:
+ type: object
+ required:
+ - qos-profile-capability
+ - qos-profile-configuration
+ properties:
+ qos-profile-capability:
+ $ref: '#/components/schemas/QOS_PROFILE_CAPABILITY'
+ qos-profile-configuration:
+ $ref: '#/components/schemas/QOS_PROFILE_CONFIGURATION'
+ - description: 'scheduler-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - scheduler-profile-1-0:scheduler-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'scheduler-profile-1-0:PROFILE_NAME_TYPE_SCHEDULER_PROFILE'
+ scheduler-profile-1-0:scheduler-profile-pac:
+ type: object
+ required:
+ - scheduler-profile-capability
+ - scheduler-profile-configuration
+ properties:
+ scheduler-profile-capability:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CAPABILITY'
+ scheduler-profile-configuration:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CONFIGURATION'
+ - description: 'wred-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-profile-1-0:wred-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-profile-1-0:PROFILE_NAME_TYPE_WRED_PROFILE'
+ wred-profile-1-0:wred-profile-pac:
+ type: object
+ required:
+ - wred-profile-capability
+ - wred-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_PROFILE_CONFIGURATION'
+ - description: 'wred-template-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-template-profile-1-0:wred-template-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-template-profile-1-0:PROFILE_NAME_TYPE_WRED_TEMPLATE_PROFILE'
+ wred-template-profile-1-0:wred-template-profile-pac:
+ type: object
+ required:
+ - wred-template-profile-capability
+ - wred-template-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CONFIGURATION'
+ CO_CHANNEL_PROFILE_CAPABILITY:
+ type: object
+ CO_CHANNEL_PROFILE_CONFIGURATION:
+ type: object
+ POLICING_PROFILE_CAPABILITY:
+ type: object
+ POLICING_PROFILE_CONFIGURATION:
+ type: object
+ QOS_PROFILE_CAPABILITY:
+ type: object
+ QOS_PROFILE_CONFIGURATION:
+ type: object
+ SCHEDULER_PROFILE_CAPABILITY:
+ type: object
+ SCHEDULER_PROFILE_CONFIGURATION:
+ type: object
+ WRED_PROFILE_CAPABILITY:
+ type: object
+ WRED_PROFILE_CONFIGURATION:
+ type: object
+ WRED_TEMPLATE_PROFILE_CAPABILITY:
+ type: object
+ WRED_TEMPLATE_PROFILE_CONFIGURATION:
+ type: object
+
+ LOGICAL_TERMINATION_POINT:
+ type: object
+ required:
+ - uuid
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-augment-1-0:ltp-augment-pac:
+ $ref: '#/components/schemas/LTP_AUGMENT_PAC'
+ embedded-clock:
+ type: array
+ items:
+ $ref: '#/components/schemas/EMBEDDED_CLOCK'
+ layer-protocol:
+ type: array
+ items:
+ $ref: '#/components/schemas/LAYER_PROTOCOL'
+ LTP_AUGMENT_PAC:
+ type: object
+ EMBEDDED_CLOCK:
+ type: object
+ LAYER_PROTOCOL:
+ oneOf:
+ - description: 'air-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - air-interface-2-0:air-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ air-interface-2-0:air-interface-pac:
+ $ref: '#/components/schemas/AIR_INTERFACE_PAC'
+ - description: 'ethernet-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ethernet-container-2-0:ethernet-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER'
+ ethernet-container-2-0:ethernet-container-pac:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_PAC'
+ - description: 'hybrid-mw-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - hybrid-mw-structure-2-0:hybrid-mw-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER'
+ hybrid-mw-structure-2-0:hybrid-mw-structure-pac:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_PAC'
+ - description: 'mac-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - mac-interface-1-0:mac-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER'
+ mac-interface-1-0:mac-interface-pac:
+ $ref: '#/components/schemas/MAC_INTERFACE_PAC'
+ - description: 'pure-ethernet-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - pure-ethernet-structure-2-0:pure-ethernet-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER'
+ pure-ethernet-structure-2-0:pure-ethernet-structure-pac:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_PAC'
+ - description: 'vlan-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - vlan-interface-1-0:vlan-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER'
+ vlan-interface-1-0:vlan-interface-pac:
+ $ref: '#/components/schemas/VLAN_INTERFACE_PAC'
+ - description: 'wire-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - wire-interface-2-0:wire-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER'
+ wire-interface-2-0:wire-interface-pac:
+ $ref: '#/components/schemas/WIRE_INTERFACE_PAC'
+ - description: 'ip-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ip-interface-1-0:ip-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER'
+ ip-interface-1-0:ip-interface-pac:
+ $ref: '#/components/schemas/IP_INTERFACE_PAC'
+ - description: 'tdm-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tdm-container-2-0:tdm-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER'
+ tdm-container-2-0:tdm-container-pac:
+ $ref: '#/components/schemas/TDM_CONTAINER_PAC'
+ FORWARDING_DOMAIN:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT'
+ FORWARDING_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT_PORT'
+ FORWARDING_CONSTRUCT_PORT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ LINK:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+ LINK_PORT:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+
+ AIR_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-historical-performances
+ additionalProperties: false
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-current-performance
+ - air-interface-historical-performances
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-current-performance:
+ $ref: '#/components/schemas/AIR_INTERFACE_CURRENT_PERFORMANCE'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ AIR_INTERFACE_CAPABILITY:
+ type: object
+ AIR_INTERFACE_CONFIGURATION:
+ type: object
+ AIR_INTERFACE_STATUS:
+ type: object
+ AIR_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ AIR_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ ETHERNET_CONTAINER_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-historical-performances
+ additionalProperties: false
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-current-performance
+ - ethernet-container-historical-performances
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-current-performance:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CURRENT_PERFORMANCE'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ ETHERNET_CONTAINER_CAPABILITY:
+ type: object
+ ETHERNET_CONTAINER_CONFIGURATION:
+ type: object
+ ETHERNET_CONTAINER_STATUS:
+ type: object
+ ETHERNET_CONTAINER_CURRENT_PERFORMANCE:
+ type: object
+ ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES:
+ type: object
+
+ HYBRID_MW_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-historical-performances
+ additionalProperties: false
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-current-performance
+ - hybrid-mw-structure-historical-performances
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-current-performance:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ HYBRID_MW_STRUCTURE_CAPABILITY:
+ type: object
+ HYBRID_MW_STRUCTURE_CONFIGURATION:
+ type: object
+ HYBRID_MW_STRUCTURE_STATUS:
+ type: object
+ HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ MAC_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ - description: 'live'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ MAC_INTERFACE_CAPABILITY:
+ type: object
+ MAC_INTERFACE_CONFIGURATION:
+ type: object
+ MAC_INTERFACE_STATUS:
+ type: object
+
+ PURE_ETHERNET_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-historical-performances
+ additionalProperties: false
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-current-performance
+ - pure-ethernet-structure-historical-performances
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-current-performance:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ PURE_ETHERNET_STRUCTURE_CAPABILITY:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CONFIGURATION:
+ type: object
+ PURE_ETHERNET_STRUCTURE_STATUS:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ VLAN_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ additionalProperties: false
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ - description: 'live'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ VLAN_INTERFACE_CAPABILITY:
+ type: object
+ VLAN_INTERFACE_CONFIGURATION:
+ type: object
+
+ WIRE_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-historical-performances
+ additionalProperties: false
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-current-performance
+ - wire-interface-historical-performances
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-current-performance:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CURRENT_PERFORMANCE'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ WIRE_INTERFACE_CAPABILITY:
+ type: object
+ WIRE_INTERFACE_CONFIGURATION:
+ type: object
+ WIRE_INTERFACE_STATUS:
+ type: object
+ WIRE_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ WIRE_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+ IP_INTERFACE_PAC:
+ type: object
+ required:
+ - ip-interface-capability
+ - ip-interface-configuration
+ - ip-interface-status
+ properties:
+ ip-interface-capability:
+ $ref: '#/components/schemas/IP_INTERFACE_CAPABILITY'
+ ip-interface-configuration:
+ $ref: '#/components/schemas/IP_INTERFACE_CONFIGURATION'
+ ip-interface-status:
+ $ref: '#/components/schemas/IP_INTERFACE_STATUS'
+ IP_INTERFACE_CAPABILITY:
+ type: object
+ IP_INTERFACE_CONFIGURATION:
+ type: object
+ IP_INTERFACE_STATUS:
+ type: object
+
+ TDM_CONTAINER_PAC:
+ type: object
+ required:
+ - tdm-container-capability
+ - tdm-container-configuration
+ - tdm-container-status
+ properties:
+ tdm-container-capability:
+ $ref: '#/components/schemas/TDM_CONTAINER_CAPABILITY'
+ tdm-container-configuration:
+ $ref: '#/components/schemas/TDM_CONTAINER_CONFIGURATION'
+ tdm-container-status:
+ $ref: '#/components/schemas/TDM_CONTAINER_STATUS'
+ TDM_CONTAINER_CAPABILITY:
+ type: object
+ TDM_CONTAINER_CONFIGURATION:
+ type: object
+ TDM_CONTAINER_STATUS:
+ type: object
+
+ securitySchemes:
+ apiKeyAuth:
+ type: apiKey
+ in: header
+ name: operation-key
+ basicAuth:
+ type: http
+ scheme: basic
diff --git a/testing/2_functional/completeness/v1.2.2/Connections/README.md b/testing/2_functional/completeness/v1.2.2/Connections/README.md
new file mode 100644
index 00000000..48694db4
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Connections/README.md
@@ -0,0 +1,3 @@
+# Functional Testing of Completeness of Connections
+
+
diff --git a/testing/2_functional/completeness/v1.2.2/Connections/mwdi+diagram.completeness.connections.plantuml b/testing/2_functional/completeness/v1.2.2/Connections/mwdi+diagram.completeness.connections.plantuml
new file mode 100644
index 00000000..2d0c2c5a
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Connections/mwdi+diagram.completeness.connections.plantuml
@@ -0,0 +1,26 @@
+@startuml mwdi+diagram.completeness.connections
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+diagram.completeness.connections
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+group Preparation
+ Data --\\o Postman : {servers, mount-name}
+ activate Postman
+ Postman --\\o Collection : {servers, mount-name}
+end
+
+group Connections
+ note right Postman
+ t.b.d.
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/completeness/v1.2.2/Connections/mwdi+diagram.completeness.connections.png b/testing/2_functional/completeness/v1.2.2/Connections/mwdi+diagram.completeness.connections.png
new file mode 100644
index 00000000..14eebb5d
Binary files /dev/null and b/testing/2_functional/completeness/v1.2.2/Connections/mwdi+diagram.completeness.connections.png differ
diff --git a/testing/2_functional/completeness/v1.2.2/Dataprovider/README.md b/testing/2_functional/completeness/v1.2.2/Dataprovider/README.md
new file mode 100644
index 00000000..a367413a
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Dataprovider/README.md
@@ -0,0 +1,33 @@
+# Functional Testing of Completeness of the Providers of Data
+
+
+
+The following list contains the services from the above diagram, for which completness tests are provided.
+The list gives some information about testing limitations (currently this applies only for the link-related services):
+- /v1/provide-list-of-connected-devices
+- /v1/provide-list-of-device-interfaces
+- /v1/provide-list-of-actual-device-equipment
+- /v1/provide-list-of-links:
+ - an optional filter for the link type can be provided in the requestBody upon call (link-type = "minimumForRest" or "generic")
+ - the service returns only a list of linkIDs, without any information about the link type
+ - therefore, the completeness test will just test of a list of linkIDs is returned according to the specified response schema, but the test will not include any checks for the link-type
+- /v1/provide-data-of-all-links
+ - links can be of type "minimumForRest" or "generic", and the response schemas for both types differ
+ - the service has an optional requestBody to filter for the link type, but the basic completeness test calls the service without any requestBody, therefore the service shall return data for all found links leading to the response possibly containing links from both types
+ - dedicated tests for the link type filtering are out of scope of the basic completeness test
+- /v1/provide-list-of-parallel-links
+- /v1/provide-list-of-link-ports
+- /v1/provide-data-of-all-link-ports
+- /v1/provide-device-status-metadata
+
+---
+
+Note on link and linkport services:
+The link and linkport data is not read from devices, but has to be written to MWDI by an additional application, which currently does not exist.
+Therefore the related services will not return any data, unless testers add testdata manually to the MWDI cache!
+
+
+*Additional note*:
+*The examples for the complete service responses (for services under test) should have the same identation as the* schema *keyword*.
+*However, if the simulators are created from the OAS accordingly, the import in Mockoon will lead to empty examples, altough the examples are shown correctly in the Swagger editor.*
+*Therefore, it was necessary to change the identation of response examples in the simulators to match the identation of the* properties *keyword.*
\ No newline at end of file
diff --git a/testing/2_functional/completeness/v1.2.2/Dataprovider/mwdi+data.completeness.dataprovider.json b/testing/2_functional/completeness/v1.2.2/Dataprovider/mwdi+data.completeness.dataprovider.json
new file mode 100644
index 00000000..2a5292f2
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Dataprovider/mwdi+data.completeness.dataprovider.json
@@ -0,0 +1,52 @@
+[
+ {
+ "mode": "debug",
+ "serverList": [
+ {
+ "serverName": "dummy",
+ "dummyUri": "ping.openBackhaul.com"
+ },
+ {
+ "serverName": "mwdi",
+ "server": "http://IP_ADRESS:PORT",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "YOUR_BASIC_AUTH_CODE",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "mwdi in mwdi+simulator.completeness.dataprovider",
+ "server": "http://localhost:3002",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ }
+ ],
+ "collectionInputList": [
+ {
+ "collectionName": "completeness.dataprovider",
+ "serverToBeApplied": "mwdi",
+ "mountName": "513250004",
+ "linkId": "101550001",
+ "kindOfReference": "dynamic"
+ },
+ {
+ "collectionName": "completeness.dataprovider_simulator",
+ "serverToBeApplied": "mwdi in mwdi+simulator.completeness.dataprovider",
+ "mountName": "305250001",
+ "linkId": "101550001",
+ "kindOfReference": "static",
+ "suffixUrlEncodingIsRequired": true
+ }
+ ]
+ }
+]
diff --git a/testing/2_functional/completeness/v1.2.2/Dataprovider/mwdi+diagram.completeness.dataprovider.plantuml b/testing/2_functional/completeness/v1.2.2/Dataprovider/mwdi+diagram.completeness.dataprovider.plantuml
new file mode 100644
index 00000000..efcca136
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Dataprovider/mwdi+diagram.completeness.dataprovider.plantuml
@@ -0,0 +1,113 @@
+@startuml mwdi+diagram.completeness.dataprovider
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.completeness.dataprovider
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+participant "/v1/provide-list-of-connected-devices" as PLOCD
+participant "/v1/provide-list-of-device-interfaces" as PLODI
+participant "/v1/provide-list-of-actual-device-equipment" as PLOADE
+participant "/v1/provide-list-of-links" as PLOL
+participant "/v1/provide-data-of-all-links" as PDOAL
+participant "/v1/provide-list-of-parallel-links" as PLOPL
+participant "/v1/provide-list-of-link-ports" as PLOLP
+participant "/v1/provide-data-of-all-link-ports" as PDOALP
+participant "/v1/provide-device-status-metadata" as PDSM
+
+
+group Preparation
+ Data --\\o Postman : {servers, mount-name, linkd-id}
+ activate Postman
+ Postman --\\o Collection : {servers, mount-name, link-id}
+end
+
+group /v1/provide-list-of-connected-devices
+ Collection --\\o Postman : {servers}
+ Postman -> PLOCD
+ Postman <-- PLOCD : {mount-name-list}
+ note right Postman #Orange
+ schema validation
+ end note
+ Postman --\\o Collection : {mount-name-list}
+end
+
+group /v1/provide-list-of-device-interfaces
+ Collection --\\o Postman : {servers, mount-name}
+ Postman -> PLODI : {mount-name}
+ Postman <-- PLODI : {[uuid, local-id, layer-protocol-name]}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group /v1/provide-list-of-actual-device-equipment
+ Collection --\\o Postman : {servers, mount-name}
+ Postman -> PLOADE : {mount-name}
+ Postman <-- PLOADE : {top-level-equipment, [uuid, equipment-type-name]}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group /v1/provide-list-of-links
+ Collection --\\o Postman : {servers}
+ Postman -> PLOL : {link-type}
+ Postman <-- PLOL : {link-list}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group /v1/provide-data-of-all-links
+ Collection --\\o Postman : {servers}
+ Postman -> PDOAL : {link-type}
+ Postman <-- PDOAL : {[uuid, layer-protocol-name, link-direction ...]}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group /v1/provide-list-of-parallel-links
+ Collection --\\o Postman : {servers, link-id}
+ Postman -> PLOPL : {link-id}
+ Postman <-- PLOPL : {parallel-link-list}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group /v1/provide-list-of-link-ports
+ Collection --\\o Postman : {servers}
+ Postman -> PLOLP
+ Postman <-- PLOLP : {link-port-list}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group /v1/provide-data-of-all-link-ports
+ Collection --\\o Postman : {servers}
+ Postman -> PDOALP
+ Postman <-- PDOALP : {[uuid, [local-id, link-port-direction, logical-termination-point]]
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group /v1/provide-device-status-metadata
+ Collection --\\o Postman : {servers, mount-name}
+ Postman -> PDSM : {mount-name}
+ Postman <-- PDSM : {[mount-name, connection-status, changed-to-disconnected-time, added-to-device-list-time,\n last-complete-control-construct-update-time, last-control-construct-notification-update-time,\n number-of-partial-updates-since-last-complete-update, schema-cache-directory]}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/completeness/v1.2.2/Dataprovider/mwdi+diagram.completeness.dataprovider.png b/testing/2_functional/completeness/v1.2.2/Dataprovider/mwdi+diagram.completeness.dataprovider.png
new file mode 100644
index 00000000..ddca1d63
Binary files /dev/null and b/testing/2_functional/completeness/v1.2.2/Dataprovider/mwdi+diagram.completeness.dataprovider.png differ
diff --git a/testing/2_functional/completeness/v1.2.2/Dataprovider/mwdi+testcase.completeness.dataprovider.json b/testing/2_functional/completeness/v1.2.2/Dataprovider/mwdi+testcase.completeness.dataprovider.json
new file mode 100644
index 00000000..7f4e22d7
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Dataprovider/mwdi+testcase.completeness.dataprovider.json
@@ -0,0 +1,3194 @@
+{
+ "info": {
+ "name": "mwdi+testcase.completeness",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "UserInput",
+ "item": [
+ {
+ "name": "for loading user input",
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "exec": [
+ "console.clear();\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "logger.struc(\"===== mwdi+testcase.completeness.dataprovider ==========================\");\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Loading Input Data from File\r",
+ "****************************************************************************************/\r",
+ "var inputFromFile;\r",
+ "try {\r",
+ " inputFromFile = data\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Input data could not be loaded.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Environmental Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.environment.clear();\r",
+ "\r",
+ " let mode;\r",
+ " mode = inputFromFile.mode;\r",
+ " // Mode to be applied while running this testcase collection \r",
+ " // \"analysis\" -> human does detailed analysis of response bodies etc.\r",
+ " // \"testing\" -> automated approval based on binary result\r",
+ " // \"debugging\" -> support for programming the testcase collection\r",
+ "\r",
+ " let logLevel;\r",
+ " switch(mode) {\r",
+ " case \"debugging\":\r",
+ " logLevel = \"debug\";\r",
+ " break;\r",
+ " case \"analysis\":\r",
+ " logLevel = \"log\";\r",
+ " break;\r",
+ " case \"testing\":\r",
+ " logLevel = \"error\";\r",
+ " break;\r",
+ " default:\r",
+ " logLevel = \"debug\";\r",
+ " };\r",
+ " // Level of detail of the logging; find more info in pre-request script on the collection's level\r",
+ "\r",
+ " let serverList = [];\r",
+ " serverList = inputFromFile.serverList;\r",
+ " // list of addresses of applications, controllers etc.\r",
+ " // serverName : key attribute for identifying the servers\r",
+ " // dummyUri : http address that shall be addressed by bare processing Requests\r",
+ " // server : part of the URI that is comprised from protocol, IP address and TCP port\r",
+ " // pathToControlConstruct : part of the URI that is identical for all Requests that are addressing into the device's data tree\r",
+ " // authorizationCode : authentication that has to be sent in case of BasicAuth protection (e.g. OpenDaylight NBI)\r",
+ " // operationKey : ApiKey that has to be sent in case of addressing a MW SDN application (e.g. MicroWaveDeviceInventory)\r",
+ " // userName : user header to be sent in case of addressing a MW SDN application\r",
+ " // originator : originator header to be sent in case of addressing a MW SDN application\r",
+ " // xCorrelator : x-correlator header to be sent in case of addressing a MW SDN application\r",
+ " // traceIndicator : trace-indicator header to be sent in case of addressing a MW SDN application\r",
+ " // customerJourney : customer-journey header to be sent in case of addressing a MW SDN application\r",
+ "\r",
+ " let collectionInputList = [];\r",
+ " collectionInputList = inputFromFile.collectionInputList;\r",
+ " // list of inputs to individual test case collections\r",
+ " // serverToBeApplied : server that shall be addressed in the respective request/test case\r",
+ " // mountName : mountName of the device that is to be validated\r",
+ " // uuid of the object that is to be validated\r",
+ " // localId of the object that is to be validated\r",
+ " // linkId : linkName of the link that is to be validated\r",
+ " // linkPort : id of the linkPort that is to be validated\r",
+ "\r",
+ " pm.environment.set(\"mode\", mode);\r",
+ " pm.environment.set(\"logLevel\", logLevel);\r",
+ " pm.environment.set(\"serverList\", serverList);\r",
+ " pm.environment.set(\"collectionInputList\", collectionInputList);\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Environment variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Collection Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.collectionVariables.clear()\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Collection variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Local Variables and Preparing the Request\r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " let uri;\r",
+ " let dummyServerInfo;\r",
+ " dummyServerInfo = ExtractServerInformation(inputFromFile.serverList, \"dummy\");\r",
+ " uri = dummyServerInfo.dummyUri;\r",
+ "\r",
+ " pm.variables.clear();\r",
+ "\r",
+ " pm.variables.set(\"uri\", uri);\r",
+ "\r",
+ " pm.request.headers.upsert({ key: \"Accept\", value: \"application/json\" });\r",
+ " pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" })\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Local variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Functions\r",
+ "****************************************************************************************/\r",
+ "function ExtractServerInformation(serverList, searchedServerName) {\r",
+ " try {\r",
+ " for(let i=0; i log -> info -> warn -> error -> struc -> none",
+ "// It creates \"logger\" global variable which can be used anywhere in nested collection scripts",
+ "",
+ "const logLevels = [\"debug\", \"log\", \"info\", \"warn\", \"error\", \"struc\", \"none\"];",
+ "",
+ "const shouldLog = (level) => {",
+ " return logLevels.indexOf(level) >= logLevels.indexOf(pm.environment.get(\"logLevel\"));",
+ "};",
+ "",
+ "logger = {",
+ " debug: (message, ...optionalParams) => {",
+ " shouldLog(\"debug\") && console.log(message, ...optionalParams);",
+ " },",
+ " log: (message, ...optionalParams) => {",
+ " shouldLog(\"log\") && console.log(message, ...optionalParams);",
+ " },",
+ " info: (message, ...optionalParams) => {",
+ " shouldLog(\"info\") && console.log(message, ...optionalParams);",
+ " },",
+ " warn: (message, ...optionalParams) => {",
+ " shouldLog(\"warn\") && console.log(message, ...optionalParams);",
+ " },",
+ " error: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.error(message, ...optionalParams);",
+ " },",
+ " struc: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.log(message, ...optionalParams);",
+ " },",
+ "};",
+ ""
+ ]
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/testing/2_functional/completeness/v1.2.2/Dataprovider/schema/MicroWaveDeviceInventory+json.json b/testing/2_functional/completeness/v1.2.2/Dataprovider/schema/MicroWaveDeviceInventory+json.json
new file mode 100644
index 00000000..0a119259
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Dataprovider/schema/MicroWaveDeviceInventory+json.json
@@ -0,0 +1,365 @@
+{
+ "/v1/provide-list-of-connected-devices": {
+ "type": "object",
+ "required": [
+ "mount-name-list"
+ ],
+ "properties": {
+ "mount-name-list": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/v1/provide-list-of-device-interfaces": {
+ "type": "object",
+ "required": [
+ "logical-termination-point-list"
+ ],
+ "properties": {
+ "logical-termination-point-list": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "uuid",
+ "local-id",
+ "layer-protocol-name"
+ ],
+ "properties": {
+ "uuid": {
+ "type": "string"
+ },
+ "local-id": {
+ "type": "string"
+ },
+ "layer-protocol-name": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "/v1/provide-list-of-actual-device-equipment": {
+ "type": "object",
+ "required": [
+ "top-level-equipment",
+ "actual-equipment-list"
+ ],
+ "properties": {
+ "top-level-equipment": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "actual-equipment-list": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "uuid",
+ "equipment-type-name"
+ ],
+ "properties": {
+ "uuid": {
+ "type": "string"
+ },
+ "equipment-type-name": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "/v1/provide-list-of-parallel-links": {
+ "type": "object",
+ "required": [
+ "parallel-link-list"
+ ],
+ "properties": {
+ "parallel-link-list": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/v1/provide-list-of-links": {
+ "type": "object",
+ "required": [
+ "link-list"
+ ],
+ "properties": {
+ "link-list": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "/v1/provide-list-of-link-ports": {
+ "type": "object",
+ "required": [
+ "link-port-list"
+ ],
+ "properties": {
+ "link-port-list": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "link-uuid": {
+ "type": "string"
+ },
+ "link-ports": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/v1/provide-data-of-all-links": {
+ "type": "object",
+ "required": [
+ "core-model-1-4:link"
+ ],
+ "properties": {
+ "core-model-1-4:link": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "description": "generic",
+ "type": "object",
+ "required": [
+ "uuid",
+ "layer-protocol-name",
+ "link-direction",
+ "forwarding-domain",
+ "link-port"
+ ],
+ "properties": {
+ "uuid": {
+ "type": "string"
+ },
+ "layer-protocol-name": {
+ "type": "string"
+ },
+ "link-direction": {
+ "type": "string",
+ "enum": [
+ "core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL",
+ "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL",
+ "core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL",
+ "core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN"
+ ]
+ },
+ "forwarding-domain": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "link-port": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "description": "generic",
+ "type": "object",
+ "required": [
+ "local-id",
+ "link-port-direction",
+ "logical-termination-point"
+ ],
+ "properties": {
+ "local-id": {
+ "type": "string"
+ },
+ "link-port-direction": {
+ "type": "string",
+ "enum": [
+ "core-model-1-4:PORT_DIRECTION_INPUT",
+ "core-model-1-4:PORT_DIRECTION_OUTPUT",
+ "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+ "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+ "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN"
+ ]
+ },
+ "logical-termination-point": {
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ {
+ "description": "minimum for rest",
+ "type": "object",
+ "required": [
+ "uuid",
+ "layer-protocol-name",
+ "end-point-list"
+ ],
+ "properties": {
+ "uuid": {
+ "type": "string"
+ },
+ "layer-protocol-name": {
+ "type": "string"
+ },
+ "end-point-list": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "control-construct",
+ "logical-termination-point",
+ "layer-protocol"
+ ],
+ "properties": {
+ "control-construct": {
+ "type": "string"
+ },
+ "logical-termination-point": {
+ "type": "string"
+ },
+ "layer-protocol": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "/v1/provide-data-of-all-link-ports": {
+ "type": "object",
+ "required": [
+ "core-model-1-4:link-ports"
+ ],
+ "properties": {
+ "core-model-1-4:link-ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "uuid",
+ "link-port"
+ ],
+ "properties": {
+ "uuid": {
+ "type": "string"
+ },
+ "link-port": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "description": "generic",
+ "type": "object",
+ "required": [
+ "local-id",
+ "link-port-direction",
+ "logical-termination-point"
+ ],
+ "properties": {
+ "local-id": {
+ "type": "string"
+ },
+ "link-port-direction": {
+ "type": "string",
+ "enum": [
+ "core-model-1-4:PORT_DIRECTION_INPUT",
+ "core-model-1-4:PORT_DIRECTION_OUTPUT",
+ "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+ "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+ "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN"
+ ]
+ },
+ "logical-termination-point": {
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/v1/provide-device-status-metadata": {
+ "type": "object",
+ "required": [
+ "device-status-metadata"
+ ],
+ "properties": {
+ "device-status-metadata": {
+ "type": "array",
+ "items": {
+ "required": [
+ "mount-name",
+ "connection-status",
+ "changed-to-disconnected-time",
+ "added-to-device-list-time",
+ "last-complete-control-construct-update-time",
+ "last-control-construct-notification-update-time",
+ "number-of-partial-updates-since-last-complete-update",
+ "schema-cache-directory"
+ ],
+ "properties": {
+ "mount-name": {
+ "type": "string"
+ },
+ "connection-status": {
+ "type": "string",
+ "enum": [
+ "connected",
+ "connecting",
+ "unable-to-connect"
+ ]
+ },
+ "changed-to-disconnected-time": {
+ "type": "string"
+ },
+ "added-to-device-list-time": {
+ "type": "string"
+ },
+ "last-complete-control-construct-update-time": {
+ "type": "string"
+ },
+ "last-control-construct-notification-update-time": {
+ "type": "string"
+ },
+ "number-of-partial-updates-since-last-complete-update": {
+ "type": "integer"
+ },
+ "schema-cache-directory": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/testing/2_functional/completeness/v1.2.2/Dataprovider/schema/MicroWaveDeviceInventory+yaml.yaml b/testing/2_functional/completeness/v1.2.2/Dataprovider/schema/MicroWaveDeviceInventory+yaml.yaml
new file mode 100644
index 00000000..d088f46f
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Dataprovider/schema/MicroWaveDeviceInventory+yaml.yaml
@@ -0,0 +1,252 @@
+
+ /v1/provide-list-of-connected-devices:
+ type: object
+ required:
+ - mount-name-list
+ properties:
+ mount-name-list:
+ type: array
+ items:
+ type: string
+
+ /v1/provide-list-of-device-interfaces:
+ type: object
+ required:
+ - logical-termination-point-list
+ properties:
+ logical-termination-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - local-id
+ - layer-protocol-name
+ properties:
+ uuid:
+ type: string
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+
+ /v1/provide-list-of-actual-device-equipment:
+ type: object
+ required:
+ - top-level-equipment
+ - actual-equipment-list
+ properties:
+ top-level-equipment:
+ type: array
+ items:
+ type: string
+ actual-equipment-list:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - equipment-type-name
+ properties:
+ uuid:
+ type: string
+ equipment-type-name:
+ type: string
+
+ /v1/provide-list-of-parallel-links:
+ type: object
+ required:
+ - parallel-link-list
+ properties:
+ parallel-link-list:
+ type: array
+ items:
+ type: string
+
+ /v1/provide-list-of-links:
+ type: object
+ required:
+ - link-list
+ properties:
+ link-list:
+ type: array
+ items:
+ type: string
+
+ /v1/provide-list-of-link-ports:
+ type: object
+ required:
+ - link-port-list
+ properties:
+ link-port-list:
+ type: array
+ items:
+ type: object
+ properties:
+ link-uuid:
+ type: string
+ link-ports:
+ type: array
+ items:
+ type: string
+
+ /v1/provide-data-of-all-links:
+ type: object
+ required:
+ - core-model-1-4:link
+ properties:
+ core-model-1-4:link:
+ type: array
+ items:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+
+ /v1/provide-data-of-all-link-ports:
+ type: object
+ required:
+ - core-model-1-4:link-ports
+ properties:
+ core-model-1-4:link-ports:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - link-port
+ properties:
+ uuid:
+ type: string
+ link-port:
+ type: array
+ items:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+
+ /v1/provide-device-status-metadata:
+ type: object
+ required:
+ - device-status-metadata
+ properties:
+ device-status-metadata:
+ type: array
+ items:
+ required:
+ - mount-name
+ - connection-status
+ - changed-to-disconnected-time
+ - added-to-device-list-time
+ - last-complete-control-construct-update-time
+ - last-control-construct-notification-update-time
+ - number-of-partial-updates-since-last-complete-update
+ - schema-cache-directory
+ properties:
+ mount-name:
+ type: string
+ connection-status:
+ type: string
+ enum:
+ - 'connected'
+ - 'connecting'
+ - 'unable-to-connect'
+ changed-to-disconnected-time:
+ type: string
+ added-to-device-list-time:
+ type: string
+ last-complete-control-construct-update-time:
+ type: string
+ last-control-construct-notification-update-time:
+ type: string
+ number-of-partial-updates-since-last-complete-update:
+ type: integer
+ schema-cache-directory:
+ type: string
\ No newline at end of file
diff --git a/testing/2_functional/completeness/v1.2.2/Dataprovider/simulators/MicroWaveDeviceInventory+simu.completeness.dataprovider.yaml b/testing/2_functional/completeness/v1.2.2/Dataprovider/simulators/MicroWaveDeviceInventory+simu.completeness.dataprovider.yaml
new file mode 100644
index 00000000..a21c6235
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Dataprovider/simulators/MicroWaveDeviceInventory+simu.completeness.dataprovider.yaml
@@ -0,0 +1,2139 @@
+openapi: 3.0.0
+info:
+ title: MWDI_1.2.2+simulator.completeness.dataprovider
+ version: 1.0.0
+
+paths:
+########################################################################################################################
+# Service Layer - Individual Part
+# MWDI_1.2.2+simulator.completeness.dataprovider in static reference mode
+########################################################################################################################
+
+ /v1/provide-list-of-connected-devices:
+ post:
+ operationId: provideListOfConnectedDevices
+ summary: 'Provides list of devices that are connected to the controller'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ responses:
+ '200':
+ description: 'List of connected devices provided'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - mount-name-list
+ properties:
+ mount-name-list:
+ type: array
+ items:
+ type: string
+ example:
+ mount-name-list:
+ - '305251234'
+ - '105258888'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/provide-list-of-device-interfaces:
+ post:
+ operationId: provideListOfDeviceInterfaces
+ summary: 'Provides list of LTP UUIDs at a device'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - mount-name
+ properties:
+ mount-name:
+ type: string
+ responses:
+ '200':
+ description: 'List of LTP UUIDs provided'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - logical-termination-point-list
+ properties:
+ logical-termination-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - local-id
+ - layer-protocol-name
+ properties:
+ uuid:
+ type: string
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ example:
+ logical-termination-point-list:
+ - uuid: '513250010-ETY-2134638978'
+ local-id: '2134638978'
+ layer-protocol-name: 'wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER'
+ - uuid: '513250010-RF-2146697857'
+ local-id: '2146697857'
+ layer-protocol-name: 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/provide-list-of-actual-device-equipment:
+ post:
+ operationId: provideListOfActualDeviceEquipment
+ summary: 'Provides list of actual equipment UUIDs inside a device'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - mount-name
+ properties:
+ mount-name:
+ type: string
+ responses:
+ '200':
+ description: 'List of actual equipment UUIDs provided'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - top-level-equipment
+ - actual-equipment-list
+ properties:
+ top-level-equipment:
+ type: array
+ items:
+ type: string
+ actual-equipment-list:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - equipment-type-name
+ properties:
+ uuid:
+ type: string
+ equipment-type-name:
+ type: string
+ example:
+ top-level-equipment:
+ - 'HUAWEI-EQUIPMENT-1'
+ actual-equipment-list:
+ - uuid: '222250001-HUAWEI-EQUIPMENT-1'
+ equipment-type-name: 'OptiXRTN950'
+ - uuid: '222250001-HUAWEI-EQUIPMENT-4-4'
+ equipment-type-name: 'SL91EG4'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/provide-list-of-parallel-links:
+ post:
+ operationId: provideListOfParallelLinks
+ summary: 'Provides list of Links between the same ControlConstructs'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - link-id
+ properties:
+ link-id:
+ type: string
+ responses:
+ '200':
+ description: 'List of parallel Links provided'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - parallel-link-list
+ properties:
+ parallel-link-list:
+ type: array
+ items:
+ type: string
+ example:
+ parallel-link-list:
+ - '305551234'
+ - '305551235'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/provide-list-of-links:
+ post:
+ operationId: provideListOfLinks
+ summary: 'Provides list of links in cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - link-type
+ properties:
+ link-type:
+ type: string
+ enum:
+ - 'generic'
+ - 'minimumForRest'
+ responses:
+ '200':
+ description: 'List of links in cache'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - link-list
+ properties:
+ link-list:
+ type: array
+ items:
+ type: string
+ example:
+ link-list:
+ - '101550001'
+ - '204550003'
+ - 'genericLink1'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/provide-list-of-link-ports:
+ post:
+ operationId: provideListOfLinkPorts
+ summary: 'Provides list of link ports in cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ responses:
+ '200':
+ description: 'List of link ports in cache'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - link-port-list
+ properties:
+ link-port-list:
+ type: array
+ items:
+ type: object
+ properties:
+ link-uuid:
+ type: string
+ link-ports:
+ type: array
+ items:
+ type: string
+ example:
+ link-port-list:
+ - link-uuid: link1
+ link-ports:
+ - 'localId1'
+ - 'localId2'
+ - link-uuid: link2
+ link-ports:
+ - 'localId1'
+ - 'localId3'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/provide-data-of-all-links:
+ post:
+ operationId: provideDataOfLinks
+ summary: 'Provides data of (filtered) links in cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - link-type
+ properties:
+ link-type:
+ type: string
+ enum:
+ - 'generic'
+ - 'minimumForRest'
+ responses:
+ '200':
+ description: 'Data of (filtered) links in cache'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - core-model-1-4:link
+ properties:
+ core-model-1-4:link:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK'
+ example:
+ core-model-1-4:link:
+ - uuid: 'genericLink1'
+ layer-protocol-name: 'layer protocol name for the link'
+ link-direction: 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ forwarding-domain:
+ - 'forwarding domain entry'
+ link-port:
+ - local-id: '1'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_INPUT'
+ logical-termination-point: 'mountnameA+ltpA'
+ - local-id: '2'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ logical-termination-point: 'mountnameB+ltpB'
+ - uuid: '513559996'
+ layer-protocol-name: 'core-model-1-4:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ end-point-list:
+ - control-construct: '513250009'
+ logical-termination-point: '513250009+LTP-MWPS-TTP-RADIO-2A'
+ layer-protocol: '513250009+LP-MWPS-TTP-RADIO-2A'
+ - control-construct: '513250008'
+ logical-termination-point: '513250008+LTP-MWPS-TTP-RADIO-2A'
+ layer-protocol: '513250008+LP-MWPS-TTP-RADIO-2A'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/provide-data-of-all-link-ports:
+ post:
+ operationId: provideDataOfLinkPorts
+ summary: 'Provides data of linkports in cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ responses:
+ '200':
+ description: 'Data of linkports in cache'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - core-model-1-4:link-ports
+ properties:
+ core-model-1-4:link-ports:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - link-port
+ properties:
+ uuid:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ example:
+ core-model-1-4:link-ports:
+ - uuid: 'genericLink1'
+ link-port:
+ - local-id: '1'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_INPUT'
+ logical-termination-point: 'mountnameA+ltpA'
+ - local-id: '2'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ logical-termination-point: 'mountnameB+ltpB'
+ - uuid: 'genericLink2'
+ link-port:
+ - local-id: '1'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_INPUT'
+ logical-termination-point: 'ltpX'
+ - local-id: '2'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ logical-termination-point: 'ltpY'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/provide-device-status-metadata:
+ post:
+ operationId: provideDeviceStatusMetadata
+ summary: 'Provides metadata status table of devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ mount-name-list:
+ type: array
+ items:
+ type: string
+ responses:
+ '200':
+ description: 'Table with device status metadata provided'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - device-status-metadata
+ properties:
+ device-status-metadata:
+ type: array
+ items:
+ required:
+ - mount-name
+ - connection-status
+ - changed-to-disconnected-time
+ - added-to-device-list-time
+ - last-complete-control-construct-update-time
+ - last-control-construct-notification-update-time
+ - number-of-partial-updates-since-last-complete-update
+ - schema-cache-directory
+ properties:
+ mount-name:
+ type: string
+ connection-status:
+ type: string
+ enum:
+ - 'connected'
+ - 'connecting'
+ - 'unable-to-connect'
+ changed-to-disconnected-time:
+ type: string
+ added-to-device-list-time:
+ type: string
+ last-complete-control-construct-update-time:
+ type: string
+ last-control-construct-notification-update-time:
+ type: string
+ number-of-partial-updates-since-last-complete-update:
+ type: integer
+ schema-cache-directory:
+ type: string
+ example:
+ device-status-metadata:
+ - mount-name: '305251234'
+ connection-status: 'connected'
+ changed-to-disconnected-time: ''
+ added-to-device-list-time: '2024-10-10T14:00:00+01:00'
+ last-complete-control-construct-update-time: '2024-10-10T14:00:05+01:00'
+ last-control-construct-notification-update-time: '2024-10-10T15:17:00+01:00'
+ number-of-partial-updates-since-last-complete-update: 7
+ schema-cache-directory: 'hua'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+########################################################################################################################
+# Common Components
+########################################################################################################################
+components:
+ parameters:
+ user:
+ name: user
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'User Name'
+ description: 'User identifier from the system starting the service call'
+ originator:
+ name: originator
+ in: header
+ required: true
+ schema:
+ type: string
+ minLength: 3
+ example: 'Resolver'
+ description: >
+ 'Identification for the system consuming the API, as defined in
+ [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]'
+ x-correlator:
+ name: x-correlator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ description: 'Empty string accepted from external applications.'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses'
+ trace-indicator:
+ name: trace-indicator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^([0-9]+)(\.([0-9]+))*$'
+ description: 'Empty string accepted from external applications.'
+ example: '1.3.1'
+ description: 'Sequence of request numbers along the flow'
+ customer-journey:
+ name: customer-journey
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'Unknown value'
+ description: 'Holds information supporting customer’s journey to which the execution applies'
+ mountName:
+ name: mountName
+ in: path
+ required: true
+ schema:
+ type: string
+ example: '222250001'
+ description: 'The mountName of the device that is addressed by the request'
+ uuid:
+ name: uuid
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within the device'
+ uuid1:
+ name: uuid1
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Another instance identifier that is unique within the device'
+ localId:
+ name: localId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within its list'
+ fields:
+ name: fields
+ in: query
+ required: false
+ schema:
+ type: string
+ example: 'node(node-id;netconf-node-topology:connection-status)'
+ description: 'Query parameter to filter ressources according to RFC8040 fields filter spec'
+ responses:
+ responseForErroredServiceRequests:
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ responseForErroredOamRequests:
+ description: 'Response in case of errored OaM requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ '429':
+ description: 'Response in case too many requests need to be executed in parallel or too many requests have been received within a time period. The maximum number of parallel requests is defined in an IntegerProfile with the service name as a prefix and MaxNumberOfParallelRequests as a suffix. Some time period to elapse for throttling incomming requests is defined in an IntegerProfile with the service name as a prefix and ThrottlingPeriod as a suffix'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 429
+ maximum: 429
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Too many requests'
+ '460':
+ description: 'Response in case the mountName provided in the request is not found in the list of connected devices'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 460
+ maximum: 460
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not connected. Requested device is currently not in connected state at the controller'
+ '461':
+ description: 'Response in case the (parent) topology object provided in the request (body or path) is not found in the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 461
+ maximum: 461
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not available. The topology (parent) object is currently not found in the cache.'
+ '470':
+ description: 'Response in case the resource specified in the request does not exist within the connected device'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 470
+ maximum: 470
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource not existing. Device informs about addressed resource unknown'
+ '471':
+ description: 'Response in case the (child) topology object specified in the request (body or path) does not exist within the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 471
+ maximum: 471
+ format: int32
+ message:
+ type: string
+ enum:
+ - '(Child) topology object not existing. Cache informs about addressed resource unknown.'
+ '502':
+ description: 'Response in case the server is acting as a gateway or proxy and received an invalid response from the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 502
+ maximum: 502
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway'
+ '530':
+ description: 'Response in case the referenced resource exists (e.g. device connected and resource exists in internal datatree), but response data is either not available, lost during transmission, incomplete or corrupted'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 530
+ maximum: 530
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Data invalid. Response data not available, incomplete or corrupted'
+ '531':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to authenticate at the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 531
+ maximum: 531
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Authentication at upstream server failed.'
+ '532':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to connect to the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 532
+ maximum: 532
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Upstream server not responding.'
+ '533':
+ description: 'Response in case the referenced resource for an connected device does not exist at the controller.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 533
+ maximum: 533
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource unknown. The resource for the connected device does not exist at the Controller.'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ life-cycle-state:
+ schema:
+ type: string
+ enum:
+ - 'EXPERIMENTAL'
+ - 'OPERATIONAL'
+ - 'DEPRECATED'
+ - 'OBSOLETE'
+ - 'UNKNOWN'
+ - 'NOT_YET_DEFINED'
+ example: 'EXPERIMENTAL'
+ schemas:
+ errorDescription:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
+ genericRepresentation:
+ type: object
+ required:
+ - response-value-list
+ - consequent-action-list
+ properties:
+ response-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ - value
+ - datatype
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Field name
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]'
+ value:
+ type: string
+ description: >
+ 'Field value
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]'
+ datatype:
+ type: string
+ description: >
+ 'Field datatype
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]'
+ consequent-action-list:
+ type: array
+ items:
+ type: object
+ required:
+ - label
+ - request
+ - display-in-new-browser-window
+ properties:
+ label:
+ type: string
+ description: >
+ 'Label that shall be presented on the button
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]'
+ request:
+ type: string
+ description: >
+ 'Request that shall be called, when button gets pressed
+ from
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}]
+ ://
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address}
+ or
+ {/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}]
+ :
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}]
+ [{/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]'
+ input-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Name of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]'
+ unit:
+ type: string
+ description: >
+ 'Unit of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]'
+ display-in-new-browser-window:
+ type: boolean
+ description: >
+ 'True in case Request shall be represented in a new browser window
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]'
+ logicalTerminationPoint:
+ type: object
+ required:
+ - uuid
+ - ltp-direction
+ - client-ltp
+ - server-ltp
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-direction:
+ type: string
+ client-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ server-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ layer-protocol:
+ type: array
+ minItems: 1
+ maxItems: 1
+ items:
+ oneOf:
+ - description: 'operation server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-server-interface-1-0:operation-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-server-interface-1-0:operation-server-interface-pac:
+ type: object
+ required:
+ - operation-server-interface-capability
+ - operation-server-interface-configuration
+ properties:
+ operation-server-interface-capability:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-server-interface-configuration:
+ type: object
+ required:
+ - life-cycle-state
+ properties:
+ life-cycle-state:
+ type: string
+ - description: 'http server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-server-interface-1-0:http-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-server-interface-1-0:http-server-interface-pac:
+ type: object
+ required:
+ - http-server-interface-capability
+ properties:
+ http-server-interface-capability:
+ type: object
+ required:
+ - application-name
+ - release-number
+ - data-update-period
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ data-update-period:
+ type: string
+ - description: 'tcp server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-server-interface-1-0:tcp-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-server-interface-1-0:tcp-server-interface-pac:
+ type: object
+ required:
+ - tcp-server-interface-configuration
+ properties:
+ tcp-server-interface-configuration:
+ type: object
+ required:
+ - description
+ - local-protocol
+ - local-address
+ - local-port
+ properties:
+ description:
+ type: string
+ local-protocol:
+ type: string
+ local-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ local-port:
+ type: integer
+ - description: 'operation client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-client-interface-1-0:operation-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-client-interface-1-0:operation-client-interface-pac:
+ type: object
+ required:
+ - operation-client-interface-configuration
+ - operation-client-interface-status
+ properties:
+ operation-client-interface-configuration:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'elasticsearch client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac:
+ type: object
+ required:
+ - elasticsearch-client-interface-configuration
+ - elasticsearch-client-interface-status
+ properties:
+ elasticsearch-client-interface-configuration:
+ type: object
+ required:
+ - index-alias
+ properties:
+ index-alias:
+ type: string
+ elasticsearch-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'http client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-client-interface-1-0:http-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-client-interface-1-0:http-client-interface-pac:
+ type: object
+ required:
+ - http-client-interface-configuration
+ properties:
+ http-client-interface-configuration:
+ type: object
+ required:
+ - application-name
+ - release-number
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ - description: 'tcp client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-client-interface-1-0:tcp-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-client-interface-1-0:tcp-client-interface-pac:
+ type: object
+ required:
+ - tcp-client-interface-configuration
+ properties:
+ tcp-client-interface-configuration:
+ type: object
+ required:
+ - remote-protocol
+ - remote-address
+ - remote-port
+ properties:
+ remote-protocol:
+ type: string
+ remote-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ remote-port:
+ type: integer
+ forwardingDomain:
+ type: object
+ required:
+ - uuid
+ - forwarding-construct
+ properties:
+ uuid:
+ type: string
+ forwarding-construct:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - name
+ - fc-port
+ properties:
+ uuid:
+ type: string
+ name:
+ type: array
+ items:
+ type: object
+ required:
+ - value-name
+ - value
+ properties:
+ value-name:
+ type: string
+ value:
+ type: string
+ fc-port:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ port-direction:
+ type: string
+ logical-termination-point:
+ type: string
+
+ CONTROL_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ - alarms-1-0:alarm-pac
+ - equipment
+ - firmware-1-0:firmware-collection
+ - profile-collection
+ - logical-termination-point
+ properties:
+ uuid:
+ type: string
+ alarms-1-0:alarm-pac:
+ $ref: '#/components/schemas/ALARM_PAC'
+ equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EQUIPMENT'
+ firmware-1-0:firmware-collection:
+ $ref: '#/components/schemas/FIRMWARE_COLLECTION'
+ profile-collection:
+ $ref: '#/components/schemas/PROFILE_COLLECTION'
+ forwarding-domain:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_DOMAIN'
+ logical-termination-point:
+ type: array
+ items:
+ $ref: '#/components/schemas/LOGICAL_TERMINATION_POINT'
+
+ ALARM_PAC:
+ type: object
+ required:
+ - alarm-capability
+ - alarm-configuration
+ - current-alarms
+ - alarm-event-records
+ properties:
+ alarm-capability:
+ $ref: '#/components/schemas/ALARM_CAPABILITY'
+ alarm-configuration:
+ $ref: '#/components/schemas/ALARM_CONFIGURATION'
+ current-alarms:
+ $ref: '#/components/schemas/CURRENT_ALARMS'
+ alarm-event-records:
+ $ref: '#/components/schemas/ALARM_EVENT_RECORDS'
+ ALARM_CAPABILITY:
+ type: object
+ ALARM_CONFIGURATION:
+ type: object
+ CURRENT_ALARMS:
+ type: object
+ ALARM_EVENT_RECORDS:
+ type: object
+
+ EQUIPMENT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ connector:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONNECTOR'
+ contained-holder:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONTAINED_HOLDER'
+ expected-equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EXPECTED_EQUIPMENT'
+ actual-equipment:
+ type: object
+ CONNECTOR:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ CONTAINED_HOLDER:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ EXPECTED_EQUIPMENT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ ACTUAL_EQUIPMENT:
+ type: object
+
+ FIRMWARE_COLLECTION:
+ type: object
+ required:
+ - firmware-component-list
+ properties:
+ firmware-component-list:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_LIST'
+ FIRMWARE_COMPONENT_LIST:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - firmware-component-pac
+ properties:
+ local-id:
+ type: string
+ firmware-component-pac:
+ type: object
+ required:
+ - firmware-component-capability
+ - firmware-component-status
+ properties:
+ firmware-component-capability:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_CAPABILITY'
+ firmware-component-status:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_STATUS'
+ FIRMWARE_COMPONENT_CAPABILITY:
+ type: object
+ FIRMWARE_COMPONENT_STATUS:
+ type: object
+
+ PROFILE_COLLECTION:
+ type: object
+ required:
+ - profile
+ properties:
+ profile:
+ type: array
+ items:
+ $ref: '#/components/schemas/PROFILE'
+ PROFILE:
+ oneOf:
+ - description: 'co-channel-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - co-channel-profile-1-0:co-channel-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'co-channel-profile-1-0:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE'
+ co-channel-profile-1-0:co-channel-profile-pac:
+ type: object
+ required:
+ - co-channel-profile-capability
+ - co-channel-profile-configuration
+ properties:
+ co-channel-profile-capability:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CAPABILITY'
+ co-channel-profile-configuration:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CONFIGURATION'
+ - description: 'policing-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - policing-profile-1-0:policing-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'policing-profile-1-0:PROFILE_NAME_TYPE_POLICING_PROFILE'
+ policing-profile-1-0:policing-profile-pac:
+ type: object
+ required:
+ - policing-profile-capability
+ - policing-profile-configuration
+ properties:
+ policing-profile-capability:
+ $ref: '#/components/schemas/POLICING_PROFILE_CAPABILITY'
+ policing-profile-configuration:
+ $ref: '#/components/schemas/POLICING_PROFILE_CONFIGURATION'
+ - description: 'qos-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - qos-profile-1-0:qos-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'qos-profile-1-0:PROFILE_NAME_TYPE_QOS_PROFILE'
+ qos-profile-1-0:qos-profile-pac:
+ type: object
+ required:
+ - qos-profile-capability
+ - qos-profile-configuration
+ properties:
+ qos-profile-capability:
+ $ref: '#/components/schemas/QOS_PROFILE_CAPABILITY'
+ qos-profile-configuration:
+ $ref: '#/components/schemas/QOS_PROFILE_CONFIGURATION'
+ - description: 'scheduler-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - scheduler-profile-1-0:scheduler-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'scheduler-profile-1-0:PROFILE_NAME_TYPE_SCHEDULER_PROFILE'
+ scheduler-profile-1-0:scheduler-profile-pac:
+ type: object
+ required:
+ - scheduler-profile-capability
+ - scheduler-profile-configuration
+ properties:
+ scheduler-profile-capability:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CAPABILITY'
+ scheduler-profile-configuration:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CONFIGURATION'
+ - description: 'wred-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-profile-1-0:wred-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-profile-1-0:PROFILE_NAME_TYPE_WRED_PROFILE'
+ wred-profile-1-0:wred-profile-pac:
+ type: object
+ required:
+ - wred-profile-capability
+ - wred-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_PROFILE_CONFIGURATION'
+ - description: 'wred-template-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-template-profile-1-0:wred-template-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-template-profile-1-0:PROFILE_NAME_TYPE_WRED_TEMPLATE_PROFILE'
+ wred-template-profile-1-0:wred-template-profile-pac:
+ type: object
+ required:
+ - wred-template-profile-capability
+ - wred-template-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CONFIGURATION'
+ CO_CHANNEL_PROFILE_CAPABILITY:
+ type: object
+ CO_CHANNEL_PROFILE_CONFIGURATION:
+ type: object
+ POLICING_PROFILE_CAPABILITY:
+ type: object
+ POLICING_PROFILE_CONFIGURATION:
+ type: object
+ QOS_PROFILE_CAPABILITY:
+ type: object
+ QOS_PROFILE_CONFIGURATION:
+ type: object
+ SCHEDULER_PROFILE_CAPABILITY:
+ type: object
+ SCHEDULER_PROFILE_CONFIGURATION:
+ type: object
+ WRED_PROFILE_CAPABILITY:
+ type: object
+ WRED_PROFILE_CONFIGURATION:
+ type: object
+ WRED_TEMPLATE_PROFILE_CAPABILITY:
+ type: object
+ WRED_TEMPLATE_PROFILE_CONFIGURATION:
+ type: object
+
+ LOGICAL_TERMINATION_POINT:
+ type: object
+ required:
+ - uuid
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-augment-1-0:ltp-augment-pac:
+ $ref: '#/components/schemas/LTP_AUGMENT_PAC'
+ embedded-clock:
+ type: array
+ items:
+ $ref: '#/components/schemas/EMBEDDED_CLOCK'
+ layer-protocol:
+ type: array
+ items:
+ $ref: '#/components/schemas/LAYER_PROTOCOL'
+ LTP_AUGMENT_PAC:
+ type: object
+ EMBEDDED_CLOCK:
+ type: object
+ LAYER_PROTOCOL:
+ oneOf:
+ - description: 'air-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - air-interface-2-0:air-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ air-interface-2-0:air-interface-pac:
+ $ref: '#/components/schemas/AIR_INTERFACE_PAC'
+ - description: 'ethernet-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ethernet-container-2-0:ethernet-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER'
+ ethernet-container-2-0:ethernet-container-pac:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_PAC'
+ - description: 'hybrid-mw-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - hybrid-mw-structure-2-0:hybrid-mw-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER'
+ hybrid-mw-structure-2-0:hybrid-mw-structure-pac:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_PAC'
+ - description: 'mac-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - mac-interface-1-0:mac-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER'
+ mac-interface-1-0:mac-interface-pac:
+ $ref: '#/components/schemas/MAC_INTERFACE_PAC'
+ - description: 'pure-ethernet-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - pure-ethernet-structure-2-0:pure-ethernet-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER'
+ pure-ethernet-structure-2-0:pure-ethernet-structure-pac:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_PAC'
+ - description: 'vlan-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - vlan-interface-1-0:vlan-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER'
+ vlan-interface-1-0:vlan-interface-pac:
+ $ref: '#/components/schemas/VLAN_INTERFACE_PAC'
+ - description: 'wire-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - wire-interface-2-0:wire-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER'
+ wire-interface-2-0:wire-interface-pac:
+ $ref: '#/components/schemas/WIRE_INTERFACE_PAC'
+ - description: 'ip-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ip-interface-1-0:ip-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER'
+ ip-interface-1-0:ip-interface-pac:
+ $ref: '#/components/schemas/IP_INTERFACE_PAC'
+ - description: 'tdm-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tdm-container-2-0:tdm-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER'
+ tdm-container-2-0:tdm-container-pac:
+ $ref: '#/components/schemas/TDM_CONTAINER_PAC'
+ FORWARDING_DOMAIN:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT'
+ FORWARDING_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT_PORT'
+ FORWARDING_CONSTRUCT_PORT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ LINK:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+ LINK_PORT:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+
+ AIR_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-historical-performances
+ additionalProperties: false
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-current-performance
+ - air-interface-historical-performances
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-current-performance:
+ $ref: '#/components/schemas/AIR_INTERFACE_CURRENT_PERFORMANCE'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ AIR_INTERFACE_CAPABILITY:
+ type: object
+ AIR_INTERFACE_CONFIGURATION:
+ type: object
+ AIR_INTERFACE_STATUS:
+ type: object
+ AIR_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ AIR_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ ETHERNET_CONTAINER_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-historical-performances
+ additionalProperties: false
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-current-performance
+ - ethernet-container-historical-performances
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-current-performance:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CURRENT_PERFORMANCE'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ ETHERNET_CONTAINER_CAPABILITY:
+ type: object
+ ETHERNET_CONTAINER_CONFIGURATION:
+ type: object
+ ETHERNET_CONTAINER_STATUS:
+ type: object
+ ETHERNET_CONTAINER_CURRENT_PERFORMANCE:
+ type: object
+ ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES:
+ type: object
+
+ HYBRID_MW_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-historical-performances
+ additionalProperties: false
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-current-performance
+ - hybrid-mw-structure-historical-performances
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-current-performance:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ HYBRID_MW_STRUCTURE_CAPABILITY:
+ type: object
+ HYBRID_MW_STRUCTURE_CONFIGURATION:
+ type: object
+ HYBRID_MW_STRUCTURE_STATUS:
+ type: object
+ HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ MAC_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ - description: 'live'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ MAC_INTERFACE_CAPABILITY:
+ type: object
+ MAC_INTERFACE_CONFIGURATION:
+ type: object
+ MAC_INTERFACE_STATUS:
+ type: object
+
+ PURE_ETHERNET_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-historical-performances
+ additionalProperties: false
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-current-performance
+ - pure-ethernet-structure-historical-performances
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-current-performance:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ PURE_ETHERNET_STRUCTURE_CAPABILITY:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CONFIGURATION:
+ type: object
+ PURE_ETHERNET_STRUCTURE_STATUS:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ VLAN_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ additionalProperties: false
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ - description: 'live'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ VLAN_INTERFACE_CAPABILITY:
+ type: object
+ VLAN_INTERFACE_CONFIGURATION:
+ type: object
+
+ WIRE_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-historical-performances
+ additionalProperties: false
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-current-performance
+ - wire-interface-historical-performances
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-current-performance:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CURRENT_PERFORMANCE'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ WIRE_INTERFACE_CAPABILITY:
+ type: object
+ WIRE_INTERFACE_CONFIGURATION:
+ type: object
+ WIRE_INTERFACE_STATUS:
+ type: object
+ WIRE_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ WIRE_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+ IP_INTERFACE_PAC:
+ type: object
+ required:
+ - ip-interface-capability
+ - ip-interface-configuration
+ - ip-interface-status
+ properties:
+ ip-interface-capability:
+ $ref: '#/components/schemas/IP_INTERFACE_CAPABILITY'
+ ip-interface-configuration:
+ $ref: '#/components/schemas/IP_INTERFACE_CONFIGURATION'
+ ip-interface-status:
+ $ref: '#/components/schemas/IP_INTERFACE_STATUS'
+ IP_INTERFACE_CAPABILITY:
+ type: object
+ IP_INTERFACE_CONFIGURATION:
+ type: object
+ IP_INTERFACE_STATUS:
+ type: object
+
+ TDM_CONTAINER_PAC:
+ type: object
+ required:
+ - tdm-container-capability
+ - tdm-container-configuration
+ - tdm-container-status
+ properties:
+ tdm-container-capability:
+ $ref: '#/components/schemas/TDM_CONTAINER_CAPABILITY'
+ tdm-container-configuration:
+ $ref: '#/components/schemas/TDM_CONTAINER_CONFIGURATION'
+ tdm-container-status:
+ $ref: '#/components/schemas/TDM_CONTAINER_STATUS'
+ TDM_CONTAINER_CAPABILITY:
+ type: object
+ TDM_CONTAINER_CONFIGURATION:
+ type: object
+ TDM_CONTAINER_STATUS:
+ type: object
+
+ securitySchemes:
+ apiKeyAuth:
+ type: apiKey
+ in: header
+ name: operation-key
+ basicAuth:
+ type: http
+ scheme: basic
diff --git a/testing/2_functional/completeness/v1.2.2/Equipment/README.md b/testing/2_functional/completeness/v1.2.2/Equipment/README.md
new file mode 100644
index 00000000..ee44ba78
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Equipment/README.md
@@ -0,0 +1,3 @@
+# Functional Testing of Completeness of Equipment
+
+
diff --git a/testing/2_functional/completeness/v1.2.2/Equipment/mwdi+diagram.completeness.equipment.plantuml b/testing/2_functional/completeness/v1.2.2/Equipment/mwdi+diagram.completeness.equipment.plantuml
new file mode 100644
index 00000000..00ab2eef
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Equipment/mwdi+diagram.completeness.equipment.plantuml
@@ -0,0 +1,26 @@
+@startuml mwdi+diagram.completeness.equipment
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+diagram.completeness.equipment
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+group Preparation
+ Data --\\o Postman : {servers, mount-name}
+ activate Postman
+ Postman --\\o Collection : {servers, mount-name}
+end
+
+group Equipment
+ note right Postman
+ t.b.d.
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/completeness/v1.2.2/Equipment/mwdi+diagram.completeness.equipment.png b/testing/2_functional/completeness/v1.2.2/Equipment/mwdi+diagram.completeness.equipment.png
new file mode 100644
index 00000000..7551abe2
Binary files /dev/null and b/testing/2_functional/completeness/v1.2.2/Equipment/mwdi+diagram.completeness.equipment.png differ
diff --git a/testing/2_functional/completeness/v1.2.2/Firmware/README.md b/testing/2_functional/completeness/v1.2.2/Firmware/README.md
new file mode 100644
index 00000000..063821ce
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Firmware/README.md
@@ -0,0 +1,3 @@
+# Functional Testing of Completeness of Firmware
+
+
diff --git a/testing/2_functional/completeness/v1.2.2/Firmware/mwdi+diagram.completeness.firmware.plantuml b/testing/2_functional/completeness/v1.2.2/Firmware/mwdi+diagram.completeness.firmware.plantuml
new file mode 100644
index 00000000..889b4ee6
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Firmware/mwdi+diagram.completeness.firmware.plantuml
@@ -0,0 +1,26 @@
+@startuml mwdi+diagram.completeness.firmware
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+diagram.completeness.firmware
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+group Preparation
+ Data --\\o Postman : {servers, mount-name}
+ activate Postman
+ Postman --\\o Collection : {servers, mount-name}
+end
+
+group Firmware
+ note right Postman
+ t.b.d.
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/completeness/v1.2.2/Firmware/mwdi+diagram.completeness.firmware.png b/testing/2_functional/completeness/v1.2.2/Firmware/mwdi+diagram.completeness.firmware.png
new file mode 100644
index 00000000..23f6f415
Binary files /dev/null and b/testing/2_functional/completeness/v1.2.2/Firmware/mwdi+diagram.completeness.firmware.png differ
diff --git a/testing/2_functional/completeness/v1.2.2/Interfaces/README.md b/testing/2_functional/completeness/v1.2.2/Interfaces/README.md
new file mode 100644
index 00000000..cd534319
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Interfaces/README.md
@@ -0,0 +1,3 @@
+# Functional Testing of Completeness of the Interfaces
+
+
diff --git a/testing/2_functional/completeness/v1.2.2/Interfaces/mwdi+diagram.completeness.interfaces.plantuml b/testing/2_functional/completeness/v1.2.2/Interfaces/mwdi+diagram.completeness.interfaces.plantuml
new file mode 100644
index 00000000..e43ccac4
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Interfaces/mwdi+diagram.completeness.interfaces.plantuml
@@ -0,0 +1,189 @@
+@startuml mwdi+diagram.completeness.interfaces
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.completeness.interfaces
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+participant "/v1/provide-list-of-device-interfaces" as PLODI
+
+participant "controller:.../air-interface-capability" as coAICa
+participant "/live/.../air-interface-capability" as lAICa
+participant "/cache/.../air-interface-capability" as caAICa
+
+participant "controller:.../air-interface-configuration" as coAICo
+participant "/live/.../air-interface-configuration" as lAICo
+participant "/cache/.../air-interface-configuration" as caAICo
+
+participant "controller:.../air-interface-status" as coAIS
+participant "/live/.../air-interface-status" as lAIS
+participant "/cache/.../air-interface-status" as caAIS
+
+participant "controller:.../air-interface-current-performance" as coAIcP
+participant "/live/.../air-interface-current-performance" as lAIcP
+
+participant "controller:.../air-interface-historical-performances" as coAIhP
+participant "/live/.../air-interface-historical-performances" as lAIhP
+participant "/cache/.../air-interface-historical-performances" as caAIhP
+
+group Preparation
+ Data --\\o Postman : {servers, mount-name}
+ activate Postman
+ Postman -> PLODI
+ Postman <-- PLODI : {logical-termination-point-list}
+ Postman --\\o Collection : {servers, mount-name,\n ..., airInterfaceUuid, ...}
+end
+
+note over Postman
+ Following steps are to be
+ repeated for:
+ - AirInterface
+ - EthernetContainer
+ - HybridMwStructure
+ - MacInterface (but
+ without Performances)
+ - PureEthernetStructure
+ - VlanInterface (but
+ without Status and
+ Performances)
+ - WireInterface
+end note
+
+group /air-interface-capability
+ Collection --\\o Postman : {servers, mount-name,\n airInterfaceUuid}
+ note over Postman
+ if airInterfaceUuid != ""
+ end note
+ Postman -> coAICa : {mount-name, airInterfaceUuid}
+ Postman <-- coAICa : {airInterfaceCapability}
+ note right Postman
+ reference-schema testing
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> lAICa : {mount-name, airInterfaceUuid}
+ Postman <-- lAICa : {airInterfaceCapability}
+ note right Postman #Orange
+ schema validation
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> caAICa : {mount-name, airInterfaceUuid}
+ Postman <-- caAICa : {airInterfaceCapability}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group /air-interface-configuration
+ Collection --\\o Postman : {servers, mount-name,\n airInterfaceUuid}
+ note over Postman
+ if airInterfaceUuid != ""
+ end note
+ Postman -> coAICo : {mount-name, airInterfaceUuid}
+ Postman <-- coAICo : {airInterfaceConfiguration}
+ note right Postman
+ reference-schema testing
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> lAICo : {mount-name, airInterfaceUuid}
+ Postman <-- lAICo : {airInterfaceConfiguration}
+ note right Postman #Orange
+ schema validation
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> caAICo : {mount-name, airInterfaceUuid}
+ Postman <-- caAICo : {airInterfaceConfiguration}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group /air-interface-status
+ Collection --\\o Postman : {servers, mount-name,\n airInterfaceUuid}
+ note over Postman
+ if airInterfaceUuid != ""
+ end note
+ Postman -> coAIS : {mount-name, airInterfaceUuid}
+ Postman <-- coAIS : {airInterfaceStatus}
+ note right Postman
+ reference-schema testing
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> lAIS : {mount-name, airInterfaceUuid}
+ Postman <-- lAIS : {airInterfaceStatus}
+ note right Postman #Orange
+ schema validation
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> caAIS : {mount-name, airInterfaceUuid}
+ Postman <-- caAIS : {airInterfaceStatus}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group /air-interface-current-performance
+ Collection --\\o Postman : {servers, mount-name,\n airInterfaceUuid}
+ note over Postman
+ if airInterfaceUuid != ""
+ end note
+ Postman -> coAIcP : {mount-name, airInterfaceUuid}
+ Postman <-- coAIcP : {airInterfaceCurrentPerformance}
+ note right Postman
+ reference-schema testing
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> lAIcP : {mount-name, airInterfaceUuid}
+ Postman <-- lAIcP : {airInterfaceCurrentPerformance}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group /air-interface-historical-performances
+ Collection --\\o Postman : {servers, mount-name,\n airInterfaceUuid}
+ note over Postman
+ if airInterfaceUuid != ""
+ end note
+ Postman -> coAIhP : {mount-name, airInterfaceUuid}
+ Postman <-- coAIhP : {airInterfaceHistoricalPerformances}
+ note right Postman
+ reference-schema testing
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> lAIhP : {mount-name, airInterfaceUuid}
+ Postman <-- lAIhP : {airInterfaceHistoricalPerformances}
+ note right Postman #Orange
+ schema validation
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> caAIhP : {mount-name, airInterfaceUuid}
+ Postman <-- caAIhP : {airInterfaceHistoricalPerformances}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/completeness/v1.2.2/Interfaces/mwdi+diagram.completeness.interfaces.png b/testing/2_functional/completeness/v1.2.2/Interfaces/mwdi+diagram.completeness.interfaces.png
new file mode 100644
index 00000000..10f3afee
Binary files /dev/null and b/testing/2_functional/completeness/v1.2.2/Interfaces/mwdi+diagram.completeness.interfaces.png differ
diff --git a/testing/2_functional/completeness/v1.2.2/Profiles/README.md b/testing/2_functional/completeness/v1.2.2/Profiles/README.md
new file mode 100644
index 00000000..0e6996dd
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Profiles/README.md
@@ -0,0 +1,3 @@
+# Functional Testing of Completeness of the Profiles
+
+
diff --git a/testing/2_functional/completeness/v1.2.2/Profiles/mwdi+diagram.completeness.profiles.plantuml b/testing/2_functional/completeness/v1.2.2/Profiles/mwdi+diagram.completeness.profiles.plantuml
new file mode 100644
index 00000000..52d532bd
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Profiles/mwdi+diagram.completeness.profiles.plantuml
@@ -0,0 +1,125 @@
+@startuml mwdi+diagram.completeness.profiles
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.completeness.profiles
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+participant "controller:.../profile-collection" as coPC
+participant "/live/.../profile-collection" as lPC
+participant "/cache/.../profile-collection" as caPC
+
+participant "controller:.../scheduler-profile-capability" as coSPCa
+participant "/live/.../scheduler-profile-capability" as lSPCa
+participant "/cache/.../scheduler-profile-capability" as caSPCa
+
+participant "controller:.../scheduler-profile-configuration" as coSPCo
+participant "/live/.../scheduler-profile-configuration" as lSPCo
+participant "/cache/.../scheduler-profile-configuration" as caSPCo
+
+
+group Preparation
+ Data --\\o Postman : {servers, mount-name}
+ activate Postman
+ Postman --\\o Collection : {servers, mount-name}
+end
+
+group /profile-collection
+ Collection --\\o Postman : {servers, mount-name}
+ note over Postman
+ if mount-name != ""
+ end note
+ Postman -> coPC : {mount-name}
+ Postman <-- coPC : {ProfileCollection}
+ note right Postman
+ reference-schema testing
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> lPC : {mount-name}
+ Postman <-- lPC : {ProfileCollection}
+ note right Postman #Orange
+ schema validation
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> caPC : {mount-name}
+ Postman <-- caPC : {ProfileCollection}
+ note right Postman #Orange
+ schema validation
+ end note
+ Postman --\\o Collection : {...,schedulerProfUuid,...}
+end
+
+note over Postman
+ Following steps are to be
+ repeated for all kinds of
+ Profile that are defined
+ and existing on the device.
+end note
+
+group /scheduler-profile-capability
+ Collection --\\o Postman : {servers, mount-name, schedulerProfUuid}
+ note over Postman
+ if schedulerProfUuid != ""
+ end note
+ Postman -> coSPCa : {mount-name, schedulerProfUuid}
+ Postman <-- coSPCa : {schedulerProfileCapability}
+ note right Postman
+ reference-schema testing
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> lSPCa : {mount-name, schedulerProfUuid}
+ Postman <-- lSPCa : {schedulerProfileCapability}
+ note right Postman #Orange
+ schema validation
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> caSPCa : {mount-name, schedulerProfUuid}
+ Postman <-- caSPCa : {schedulerProfileCapability}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+group /scheduler-profile-configuration
+ Collection --\\o Postman : {servers, mount-name, schedulerProfUuid}
+ note over Postman
+ if schedulerProfUuid != ""
+ end note
+ Postman -> coSPCo : {mount-name, schedulerProfUuid}
+ Postman <-- coSPCo : {schedulerProfileConfiguration}
+ note right Postman
+ reference-schema testing
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> lSPCo : {mount-name, schedulerProfUuid}
+ Postman <-- lSPCo : {schedulerProfileConfiguration}
+ note right Postman #Orange
+ schema validation
+ end note
+ note over Postman
+ if reference-schema=ok
+ end note
+ Postman -> caSPCo : {mount-name, schedulerProfUuid}
+ Postman <-- caSPCo : {schedulerProfileConfiguration}
+ note right Postman #Orange
+ schema validation
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/completeness/v1.2.2/Profiles/mwdi+diagram.completeness.profiles.png b/testing/2_functional/completeness/v1.2.2/Profiles/mwdi+diagram.completeness.profiles.png
new file mode 100644
index 00000000..47b05b2b
Binary files /dev/null and b/testing/2_functional/completeness/v1.2.2/Profiles/mwdi+diagram.completeness.profiles.png differ
diff --git a/testing/2_functional/completeness/v1.2.2/Receiver/README.md b/testing/2_functional/completeness/v1.2.2/Receiver/README.md
new file mode 100644
index 00000000..4494e2bc
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Receiver/README.md
@@ -0,0 +1,27 @@
+# Functional Testing of Completeness of the Receivers of Notifications
+
+
+
+Note that when the services under test are normally called by NotificationProxy to trigger an update in the MWDI cache.
+The input values for the attributes in the requestBodies need to be chosen carefully. The dataFile allows to add sufficient parameters for the tests.
+Some limitations and things to be aware of listed below:
+- `/v1/regard-controller-attribute-value-change`
+ - indicates that a device has changed its connection state at the Controller
+ - test can be called with a dummy mount name as input (so there will be no actual change on the MWDI cache)
+- `/v1/regard-device-alarm`
+- `/v1/regard-device-attribute-value-change`
+ - this directly changes an attribute value inside the MWDI cache: ensure to not overwrite the attribute-value by providing the current attribute-value for the selected target in the dataFile
+ - A valid combination of mountName and object-path needs to be chosen, i.e. an unknown combination of mountName/ltp-uuid leads to an error
+- `/v1/regard-device-object-creation`
+ - the target object MUST exist in the device, otherwise the creation will fail as the related object data is read from the device via the controller (which will return a 409 if the object is not found in the device)
+- `/v1/regard-device-object-deletion`
+ - this deletes an existing object from the device data
+ - the ordering in the testcase collection is as follows:
+ 1. delete the object via /v1/regard-device-object-deletion
+ 2. then re-create it via /v1/regard-device-object-creation
+ - note that it might take a while (in the testlab typically a couple of minutes) until the deleted and recreated object is again found in MWDI cache
+---
+
+Additional notes:
+- All of the above regard-services answer with 204 in case of success, i.e. without response body.
+- The dataFile contains the entries "serverToBeApplied" and "controllerToBeApplied". For now only serverToBeApplied is required. The controller would be queried if an regard-operation on MWDI is called, which would require the MWDI to fetch data from the Controller. However, this is done within a callback and thus, encapsulated. The controllerToBeApplied however could be added as an information to reflect with which Controller the MWDI is connected. It is kept for now, but may be removed later on.
diff --git a/testing/2_functional/completeness/v1.2.2/Receiver/mwdi+data.completeness.receiver.json b/testing/2_functional/completeness/v1.2.2/Receiver/mwdi+data.completeness.receiver.json
new file mode 100644
index 00000000..caabdd83
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Receiver/mwdi+data.completeness.receiver.json
@@ -0,0 +1,77 @@
+[
+ {
+ "mode": "debug",
+ "serverList": [
+ {
+ "serverName": "dummy",
+ "dummyUri": "ping.openBackhaul.com"
+ },
+ {
+ "serverName": "mwdi",
+ "server": "http://IP_ADRESS:PORT",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "YOUR_BASIC_AUTH_CODE",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "mwdi+testcase.completeness",
+ "xCorrelator": "00000000-0000-0000-0000-000000000001",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "controller",
+ "server": "http://IP_ADRESS:PORT",
+ "pathToControlConstruct": "/rests/data/network-topology:network-topology/topology=topology-netconf/node={mountName}/yang-ext:mount/core-model-1-4:control-construct",
+ "authorizationCode": "YOUR_BASIC_AUTH_CODE"
+ },
+ {
+ "serverName": "mwdi in mwdi+simulator.completeness.receiver",
+ "server": "http://localhost:3007",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "mwdi+testcase.completeness",
+ "xCorrelator": "00000000-0000-0000-0000-000000000001",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "controller in mwdi+simulator.completeness.receiver",
+ "server": "http://localhost:3002",
+ "pathToControlConstruct": "/rests/data/network-topology:network-topology/topology=topology-netconf/node={mountName}/yang-ext:mount/core-model-1-4:control-construct",
+ "authorizationCode": ""
+ }
+ ],
+ "collectionInputList": [
+ {
+ "collectionName": "completeness.receiver",
+ "applicationUnderTest": "mwdi",
+ "serverToBeApplied": "mwdi",
+ "controllerTobeApplied": "controller",
+ "mountName": "513250004",
+ "deviceAlarm_mountName": "513250008",
+ "deviceAlarm_alarmTypeId": "siae-alarms-1-0:radioEquipConcatenationAlarm",
+ "attributeValueChange_target": "513250006/logical-termination-point=LTP-MWPS-TTP-ODU-A/ltp-augment-1-0:ltp-augment-pac",
+ "attributeValueChange_attributeName": "external-label",
+ "attributeValueChange_newValue": "External label not yet defined.",
+ "objectCreation_target": "513250007/forwarding-domain=VLAN-FD/fc=VLAN-500",
+ "kindOfReference": "dynamic"
+ },
+ {
+ "collectionName": "completeness.receiver_simulator",
+ "applicationUnderTest": "mwdi in mwdi+simulator.completeness.receiver",
+ "serverToBeApplied": "mwdi in mwdi+simulator.completeness.receiver",
+ "controllerTobeApplied": "controller in mwdi+simulator.completeness.receiver",
+ "mountName": "305250001",
+ "deviceAlarm_mountName": "513250008",
+ "deviceAlarm_alarmTypeId": "siae-alarms-1-0:radioEquipConcatenationAlarm",
+ "attributeValueChange_target": "513250006/logical-termination-point=LTP-MWPS-TTP-ODU-A/ltp-augment-1-0:ltp-augment-pac",
+ "attributeValueChange_attributeName": "external-label",
+ "attributeValueChange_newValue": "513559992A",
+ "objectCreation_target": "513250007/forwarding-domain=VLAN-FD/fc=VLAN-500",
+ "kindOfReference": "static"
+ }
+ ]
+ }
+]
diff --git a/testing/2_functional/completeness/v1.2.2/Receiver/mwdi+diagram.completeness.receiver.plantuml b/testing/2_functional/completeness/v1.2.2/Receiver/mwdi+diagram.completeness.receiver.plantuml
new file mode 100644
index 00000000..b3cf1399
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Receiver/mwdi+diagram.completeness.receiver.plantuml
@@ -0,0 +1,77 @@
+@startuml mwdi+diagram.completeness.receiver
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.completeness.receiver
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+participant "/v1/regard-controller-attribute-value-change" as RCAVC
+participant "/v1/regard-device-alarm" as RDA
+participant "/v1/regard-device-attribute-value-change" as RDAVC
+participant "/v1/regard-device-object-deletion" as RDOD
+participant "/v1/regard-device-object-creation" as RDOC
+
+group Preparation
+ Data --\\o Postman : {servers, collection-input-list=(mount-name; deviceAlarm: mount-name, alarm-type-id; deviceAttributeValueChange: target, attribute-name, new-value; objectCreation: target)}
+ activate Postman
+ Postman --\\o Collection : {servers, collection-input-list}
+end
+
+group /v1/regard-controller-attribute-value-change
+ Collection --\\o Postman : {servers}
+ Postman -> RCAVC : {counter, timestamp, resource, attribute-name, new-value}
+ Postman <-- RCAVC : 204
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+group /v1/regard-device-alarm
+ Collection --\\o Postman : {servers, mount-name; alarm-type-id}
+ Postman -> RDA : {alarm-event-sequence-number, timestamp, resource, alarm-type-id, alarm-type-qualifier, problem-severity}
+ Postman <-- RDA : 204
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+group /v1/regard-device-attribute-value-change
+ Collection --\\o Postman : {servers, target (=object-path), attribute-name, new-value}
+ Postman -> RDAVC : {counter, timestamp, object-path, attribute-name, new-value}
+ Postman <-- RDAVC : 204
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+note over Postman, RDOC
+ Execute object deletion and object creation for the same target object
+ - deletion must be executed first
+ - ensure that the target object exists on the Controller
+end note
+
+group /v1/regard-device-object-deletion
+ Collection --\\o Postman : {servers, (object-creation) target}
+ Postman -> RDOD : {counter, timestamp, object-path}
+ Postman <-- RDOD : 204
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+group /v1/regard-device-object-creation
+ Collection --\\o Postman : {servers, target}
+ Postman -> RDOC : {counter, timestamp, object-path}
+ Postman <-- RDOC : 204
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/completeness/v1.2.2/Receiver/mwdi+diagram.completeness.receiver.png b/testing/2_functional/completeness/v1.2.2/Receiver/mwdi+diagram.completeness.receiver.png
new file mode 100644
index 00000000..b1cfb05a
Binary files /dev/null and b/testing/2_functional/completeness/v1.2.2/Receiver/mwdi+diagram.completeness.receiver.png differ
diff --git a/testing/2_functional/completeness/v1.2.2/Receiver/mwdi+testcase.completeness.receiver.json b/testing/2_functional/completeness/v1.2.2/Receiver/mwdi+testcase.completeness.receiver.json
new file mode 100644
index 00000000..d3609df2
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Receiver/mwdi+testcase.completeness.receiver.json
@@ -0,0 +1,1819 @@
+{
+ "info": {
+ "name": "01_MWDI_1.2.2_mwdi+testcase.completeness.receiver",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "UserInput",
+ "item": [
+ {
+ "name": "for loading user input",
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "exec": [
+ "console.clear();\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "logger.struc(\"===== mwdi+testcase.completeness.receiver ==========================\");\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Loading Input Data from File\r",
+ "****************************************************************************************/\r",
+ "var inputFromFile;\r",
+ "try {\r",
+ " inputFromFile = data\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Input data could not be loaded.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Environmental Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.environment.clear();\r",
+ "\r",
+ " let mode;\r",
+ " mode = inputFromFile.mode;\r",
+ " // Mode to be applied while running this testcase collection \r",
+ " // \"analysis\" -> human does detailed analysis of response bodies etc.\r",
+ " // \"testing\" -> automated approval based on binary result\r",
+ " // \"debugging\" -> support for programming the testcase collection\r",
+ "\r",
+ " let logLevel;\r",
+ " switch(mode) {\r",
+ " case \"debugging\":\r",
+ " logLevel = \"debug\";\r",
+ " break;\r",
+ " case \"analysis\":\r",
+ " logLevel = \"log\";\r",
+ " break;\r",
+ " case \"testing\":\r",
+ " logLevel = \"error\";\r",
+ " break;\r",
+ " default:\r",
+ " logLevel = \"debug\";\r",
+ " };\r",
+ " // Level of detail of the logging; find more info in pre-request script on the collection's level\r",
+ "\r",
+ " let serverList = [];\r",
+ " serverList = inputFromFile.serverList;\r",
+ " // list of addresses of applications, controllers etc.\r",
+ " // serverName : key attribute for identifying the servers\r",
+ " // dummyUri : http address that shall be addressed by bare processing Requests\r",
+ " // server : part of the URI that is comprised from protocol, IP address and TCP port\r",
+ " // pathToControlConstruct : part of the URI that is identical for all Requests that are addressing into the device's data tree\r",
+ " // authorizationCode : authentication that has to be sent in case of BasicAuth protection (e.g. OpenDaylight NBI)\r",
+ " // operationKey : ApiKey that has to be sent in case of addressing a MW SDN application (e.g. MicroWaveDeviceInventory)\r",
+ " // userName : user header to be sent in case of addressing a MW SDN application\r",
+ " // originator : originator header to be sent in case of addressing a MW SDN application\r",
+ " // xCorrelator : x-correlator header to be sent in case of addressing a MW SDN application\r",
+ " // traceIndicator : trace-indicator header to be sent in case of addressing a MW SDN application\r",
+ " // customerJourney : customer-journey header to be sent in case of addressing a MW SDN application\r",
+ "\r",
+ " let collectionInputList = [];\r",
+ " collectionInputList = inputFromFile.collectionInputList;\r",
+ " // list of inputs to individual test case collections\r",
+ " // serverToBeApplied : server that shall be addressed in the respective request/test case\r",
+ " // mountName : mountName of the device that is to be validated\r",
+ " // uuid of the object that is to be validated\r",
+ " // localId of the object that is to be validated\r",
+ " // linkId : linkName of the link that is to be validated\r",
+ " // linkPort : id of the linkPort that is to be validated\r",
+ "\r",
+ " pm.environment.set(\"mode\", mode);\r",
+ " pm.environment.set(\"logLevel\", logLevel);\r",
+ " pm.environment.set(\"serverList\", serverList);\r",
+ " pm.environment.set(\"collectionInputList\", collectionInputList);\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Environment variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Collection Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.collectionVariables.clear()\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Collection variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Local Variables and Preparing the Request\r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " let uri;\r",
+ " let dummyServerInfo;\r",
+ " dummyServerInfo = ExtractServerInformation(inputFromFile.serverList, \"dummy\");\r",
+ " uri = dummyServerInfo.dummyUri;\r",
+ "\r",
+ " pm.variables.clear();\r",
+ "\r",
+ " pm.variables.set(\"uri\", uri);\r",
+ "\r",
+ " pm.request.headers.upsert({ key: \"Accept\", value: \"application/json\" });\r",
+ " pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" })\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Local variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Functions\r",
+ "****************************************************************************************/\r",
+ "function ExtractServerInformation(serverList, searchedServerName) {\r",
+ " try {\r",
+ " for(let i=0; i log -> info -> warn -> error -> struc -> none",
+ "// It creates \"logger\" global variable which can be used anywhere in nested collection scripts",
+ "",
+ "const logLevels = [\"debug\", \"log\", \"info\", \"warn\", \"error\", \"struc\", \"none\"];",
+ "",
+ "const shouldLog = (level) => {",
+ " return logLevels.indexOf(level) >= logLevels.indexOf(pm.environment.get(\"logLevel\"));",
+ "};",
+ "",
+ "logger = {",
+ " debug: (message, ...optionalParams) => {",
+ " shouldLog(\"debug\") && console.log(message, ...optionalParams);",
+ " },",
+ " log: (message, ...optionalParams) => {",
+ " shouldLog(\"log\") && console.log(message, ...optionalParams);",
+ " },",
+ " info: (message, ...optionalParams) => {",
+ " shouldLog(\"info\") && console.log(message, ...optionalParams);",
+ " },",
+ " warn: (message, ...optionalParams) => {",
+ " shouldLog(\"warn\") && console.log(message, ...optionalParams);",
+ " },",
+ " error: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.error(message, ...optionalParams);",
+ " },",
+ " struc: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.log(message, ...optionalParams);",
+ " },",
+ "};",
+ ""
+ ]
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/testing/2_functional/completeness/v1.2.2/Receiver/simulators/MicroWaveDeviceInventory+simu.completeness.receiver.yaml b/testing/2_functional/completeness/v1.2.2/Receiver/simulators/MicroWaveDeviceInventory+simu.completeness.receiver.yaml
new file mode 100644
index 00000000..fd0b28d2
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Receiver/simulators/MicroWaveDeviceInventory+simu.completeness.receiver.yaml
@@ -0,0 +1,1911 @@
+openapi: 3.0.0
+info:
+ title: MWDI_1.2.2+simulator.completeness.receiver
+ version: 1.0.0
+
+paths:
+########################################################################################################################
+# Service Layer - Individual Part
+# MWDI_1.2.2+simulator.completeness.receiver in static reference mode
+########################################################################################################################
+
+ /v1/regard-controller-attribute-value-change:
+ post:
+ operationId: regardControllerAttributeValueChange
+ summary: 'Receives notifications about attribute value changes at the Controller'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:attribute-value-changed-notification
+ properties:
+ notification-proxy-1-0:attribute-value-changed-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - resource
+ - attribute-name
+ - new-value
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ resource:
+ type: string
+ attribute-name:
+ type: string
+ new-value:
+ type: string
+ example:
+ notification-proxy-1-0:attribute-value-changed-notification:
+ counter: 32
+ timestamp: '2023-07-11T08:21:50+01:00'
+ resource: '/core-model-1-4:network-control-domain=live/control-construct=odl-1/logical-termination-point=513250009/layer-protocol=0/mount-point-1-0:mount-point-pac/mount-point-status'
+ attribute-name: 'connection-status'
+ new-value: 'connecting'
+ responses:
+ '204':
+ description: 'Notification received'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/regard-device-alarm:
+ post:
+ operationId: regardDeviceAlarm
+ summary: 'Receives notifications about alarms at devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:alarm-event-notification
+ properties:
+ notification-proxy-1-0:alarm-event-notification:
+ type: object
+ required:
+ - alarm-event-sequence-number
+ - timestamp
+ - resource
+ - alarm-type-id
+ - alarm-type-qualifier
+ - problem-severity
+ properties:
+ alarm-event-sequence-number:
+ type: integer
+ timestamp:
+ type: string
+ resource:
+ type: string
+ alarm-type-id:
+ type: string
+ alarm-type-qualifier:
+ type: string
+ problem-severity:
+ type: string
+ example:
+ notification-proxy-1-0:alarm-event-notification:
+ alarm-event-sequence-number: 1
+ timestamp: '2023-07-11T08:45:02+01:00'
+ resource: '/core-model-1-4:network-control-domain=live/control-construct=513250009/logical-termination-point=LTP-MWPS-TTP-RADIO-1A/layer-protocol=LP-MWPS-TTP-RADIO-1A/air-interface-2-0:air-interface-pac'
+ alarm-type-id: 'siae-alarms-1-0:radioEquipLinkTelemetryFailAlarm'
+ alarm-type-qualifier: ''
+ problem-severity: 'major'
+ responses:
+ '204':
+ description: 'Notification received'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/regard-device-attribute-value-change:
+ post:
+ operationId: regardDeviceAttributeValueChange
+ summary: 'Receives notifications about changes of values of attributes inside the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:attribute-value-changed-notification
+ properties:
+ notification-proxy-1-0:attribute-value-changed-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - object-path
+ - attribute-name
+ - new-value
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ object-path:
+ type: string
+ attribute-name:
+ type: string
+ new-value:
+ type: string
+ example:
+ notification-proxy-1-0:attribute-value-changed-notification:
+ counter: 32
+ timestamp: '2010-11-20T14:00:00+01:00'
+ object-path: '/core-model-1-4:network-control-domain=live/control-construct=513250009/logical-termination-point=RF-2146697857/layer-protocol=2146697857/air-interface-2-0:air-interface-pac/air-interface-configuration'
+ attribute-name: 'performance-monitoring-is-on'
+ new-value: 'true'
+ responses:
+ '204':
+ description: 'Notification received'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/regard-device-object-creation:
+ post:
+ operationId: regardDeviceObjectCreation
+ summary: 'Receives notifications about objects that have been created inside the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:object-creation-notification
+ properties:
+ notification-proxy-1-0:object-creation-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - object-path
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ object-path:
+ type: string
+ example:
+ notification-proxy-1-0:object-creation-notification:
+ counter: 2
+ timestamp: '2023-07-10T12:27:03+01:00'
+ object-path: '/core-model-1-4:network-control-domain=live/control-construct=513250009/profile-collection/profile=co-channel-17'
+ responses:
+ '204':
+ description: 'Notification received'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/regard-device-object-deletion:
+ post:
+ operationId: regardDeviceObjectDeletion
+ summary: 'Receives notifications about objects that have been deleted inside the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:object-deletion-notification
+ properties:
+ notification-proxy-1-0:object-deletion-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - object-path
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ object-path:
+ type: string
+ example:
+ notification-proxy-1-0:object-deletion-notification:
+ counter: 14
+ timestamp: '2023-07-13T09:31:48+01:00'
+ object-path: '/core-model-1-4:network-control-domain=live/control-construct=513250009/logical-termination-point=RF-2146697857'
+ responses:
+ '204':
+ description: 'Notification received'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+########################################################################################################################
+# Common Components
+########################################################################################################################
+components:
+ parameters:
+ user:
+ name: user
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'User Name'
+ description: 'User identifier from the system starting the service call'
+ originator:
+ name: originator
+ in: header
+ required: true
+ schema:
+ type: string
+ minLength: 3
+ example: 'Resolver'
+ description: >
+ 'Identification for the system consuming the API, as defined in
+ [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]'
+ x-correlator:
+ name: x-correlator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ description: 'Empty string accepted from external applications.'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses'
+ trace-indicator:
+ name: trace-indicator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^([0-9]+)(\.([0-9]+))*$'
+ description: 'Empty string accepted from external applications.'
+ example: '1.3.1'
+ description: 'Sequence of request numbers along the flow'
+ customer-journey:
+ name: customer-journey
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'Unknown value'
+ description: 'Holds information supporting customer’s journey to which the execution applies'
+ mountName:
+ name: mountName
+ in: path
+ required: true
+ schema:
+ type: string
+ example: '222250001'
+ description: 'The mountName of the device that is addressed by the request'
+ uuid:
+ name: uuid
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within the device'
+ uuid1:
+ name: uuid1
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Another instance identifier that is unique within the device'
+ localId:
+ name: localId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within its list'
+ fields:
+ name: fields
+ in: query
+ required: false
+ schema:
+ type: string
+ example: 'node(node-id;netconf-node-topology:connection-status)'
+ description: 'Query parameter to filter ressources according to RFC8040 fields filter spec'
+ responses:
+ responseForErroredServiceRequests:
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ responseForErroredOamRequests:
+ description: 'Response in case of errored OaM requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ '429':
+ description: 'Response in case too many requests need to be executed in parallel or too many requests have been received within a time period. The maximum number of parallel requests is defined in an IntegerProfile with the service name as a prefix and MaxNumberOfParallelRequests as a suffix. Some time period to elapse for throttling incomming requests is defined in an IntegerProfile with the service name as a prefix and ThrottlingPeriod as a suffix'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 429
+ maximum: 429
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Too many requests'
+ '460':
+ description: 'Response in case the mountName provided in the request is not found in the list of connected devices'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 460
+ maximum: 460
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not connected. Requested device is currently not in connected state at the controller'
+ '461':
+ description: 'Response in case the (parent) topology object provided in the request (body or path) is not found in the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 461
+ maximum: 461
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not available. The topology (parent) object is currently not found in the cache.'
+ '470':
+ description: 'Response in case the resource specified in the request does not exist within the connected device'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 470
+ maximum: 470
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource not existing. Device informs about addressed resource unknown'
+ '471':
+ description: 'Response in case the (child) topology object specified in the request (body or path) does not exist within the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 471
+ maximum: 471
+ format: int32
+ message:
+ type: string
+ enum:
+ - '(Child) topology object not existing. Cache informs about addressed resource unknown.'
+ '502':
+ description: 'Response in case the server is acting as a gateway or proxy and received an invalid response from the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 502
+ maximum: 502
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway'
+ '530':
+ description: 'Response in case the referenced resource exists (e.g. device connected and resource exists in internal datatree), but response data is either not available, lost during transmission, incomplete or corrupted'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 530
+ maximum: 530
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Data invalid. Response data not available, incomplete or corrupted'
+ '531':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to authenticate at the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 531
+ maximum: 531
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Authentication at upstream server failed.'
+ '532':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to connect to the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 532
+ maximum: 532
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Upstream server not responding.'
+ '533':
+ description: 'Response in case the referenced resource for an connected device does not exist at the controller.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 533
+ maximum: 533
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource unknown. The resource for the connected device does not exist at the Controller.'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ life-cycle-state:
+ schema:
+ type: string
+ enum:
+ - 'EXPERIMENTAL'
+ - 'OPERATIONAL'
+ - 'DEPRECATED'
+ - 'OBSOLETE'
+ - 'UNKNOWN'
+ - 'NOT_YET_DEFINED'
+ example: 'EXPERIMENTAL'
+ schemas:
+ errorDescription:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
+ genericRepresentation:
+ type: object
+ required:
+ - response-value-list
+ - consequent-action-list
+ properties:
+ response-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ - value
+ - datatype
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Field name
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]'
+ value:
+ type: string
+ description: >
+ 'Field value
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]'
+ datatype:
+ type: string
+ description: >
+ 'Field datatype
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]'
+ consequent-action-list:
+ type: array
+ items:
+ type: object
+ required:
+ - label
+ - request
+ - display-in-new-browser-window
+ properties:
+ label:
+ type: string
+ description: >
+ 'Label that shall be presented on the button
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]'
+ request:
+ type: string
+ description: >
+ 'Request that shall be called, when button gets pressed
+ from
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}]
+ ://
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address}
+ or
+ {/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}]
+ :
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}]
+ [{/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]'
+ input-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Name of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]'
+ unit:
+ type: string
+ description: >
+ 'Unit of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]'
+ display-in-new-browser-window:
+ type: boolean
+ description: >
+ 'True in case Request shall be represented in a new browser window
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]'
+ logicalTerminationPoint:
+ type: object
+ required:
+ - uuid
+ - ltp-direction
+ - client-ltp
+ - server-ltp
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-direction:
+ type: string
+ client-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ server-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ layer-protocol:
+ type: array
+ minItems: 1
+ maxItems: 1
+ items:
+ oneOf:
+ - description: 'operation server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-server-interface-1-0:operation-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-server-interface-1-0:operation-server-interface-pac:
+ type: object
+ required:
+ - operation-server-interface-capability
+ - operation-server-interface-configuration
+ properties:
+ operation-server-interface-capability:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-server-interface-configuration:
+ type: object
+ required:
+ - life-cycle-state
+ properties:
+ life-cycle-state:
+ type: string
+ - description: 'http server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-server-interface-1-0:http-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-server-interface-1-0:http-server-interface-pac:
+ type: object
+ required:
+ - http-server-interface-capability
+ properties:
+ http-server-interface-capability:
+ type: object
+ required:
+ - application-name
+ - release-number
+ - data-update-period
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ data-update-period:
+ type: string
+ - description: 'tcp server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-server-interface-1-0:tcp-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-server-interface-1-0:tcp-server-interface-pac:
+ type: object
+ required:
+ - tcp-server-interface-configuration
+ properties:
+ tcp-server-interface-configuration:
+ type: object
+ required:
+ - description
+ - local-protocol
+ - local-address
+ - local-port
+ properties:
+ description:
+ type: string
+ local-protocol:
+ type: string
+ local-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ local-port:
+ type: integer
+ - description: 'operation client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-client-interface-1-0:operation-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-client-interface-1-0:operation-client-interface-pac:
+ type: object
+ required:
+ - operation-client-interface-configuration
+ - operation-client-interface-status
+ properties:
+ operation-client-interface-configuration:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'elasticsearch client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac:
+ type: object
+ required:
+ - elasticsearch-client-interface-configuration
+ - elasticsearch-client-interface-status
+ properties:
+ elasticsearch-client-interface-configuration:
+ type: object
+ required:
+ - index-alias
+ properties:
+ index-alias:
+ type: string
+ elasticsearch-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'http client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-client-interface-1-0:http-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-client-interface-1-0:http-client-interface-pac:
+ type: object
+ required:
+ - http-client-interface-configuration
+ properties:
+ http-client-interface-configuration:
+ type: object
+ required:
+ - application-name
+ - release-number
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ - description: 'tcp client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-client-interface-1-0:tcp-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-client-interface-1-0:tcp-client-interface-pac:
+ type: object
+ required:
+ - tcp-client-interface-configuration
+ properties:
+ tcp-client-interface-configuration:
+ type: object
+ required:
+ - remote-protocol
+ - remote-address
+ - remote-port
+ properties:
+ remote-protocol:
+ type: string
+ remote-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ remote-port:
+ type: integer
+ forwardingDomain:
+ type: object
+ required:
+ - uuid
+ - forwarding-construct
+ properties:
+ uuid:
+ type: string
+ forwarding-construct:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - name
+ - fc-port
+ properties:
+ uuid:
+ type: string
+ name:
+ type: array
+ items:
+ type: object
+ required:
+ - value-name
+ - value
+ properties:
+ value-name:
+ type: string
+ value:
+ type: string
+ fc-port:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ port-direction:
+ type: string
+ logical-termination-point:
+ type: string
+
+ CONTROL_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ - alarms-1-0:alarm-pac
+ - equipment
+ - firmware-1-0:firmware-collection
+ - profile-collection
+ - logical-termination-point
+ properties:
+ uuid:
+ type: string
+ alarms-1-0:alarm-pac:
+ $ref: '#/components/schemas/ALARM_PAC'
+ equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EQUIPMENT'
+ firmware-1-0:firmware-collection:
+ $ref: '#/components/schemas/FIRMWARE_COLLECTION'
+ profile-collection:
+ $ref: '#/components/schemas/PROFILE_COLLECTION'
+ forwarding-domain:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_DOMAIN'
+ logical-termination-point:
+ type: array
+ items:
+ $ref: '#/components/schemas/LOGICAL_TERMINATION_POINT'
+
+ ALARM_PAC:
+ type: object
+ required:
+ - alarm-capability
+ - alarm-configuration
+ - current-alarms
+ - alarm-event-records
+ properties:
+ alarm-capability:
+ $ref: '#/components/schemas/ALARM_CAPABILITY'
+ alarm-configuration:
+ $ref: '#/components/schemas/ALARM_CONFIGURATION'
+ current-alarms:
+ $ref: '#/components/schemas/CURRENT_ALARMS'
+ alarm-event-records:
+ $ref: '#/components/schemas/ALARM_EVENT_RECORDS'
+ ALARM_CAPABILITY:
+ type: object
+ ALARM_CONFIGURATION:
+ type: object
+ CURRENT_ALARMS:
+ type: object
+ ALARM_EVENT_RECORDS:
+ type: object
+
+ EQUIPMENT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ connector:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONNECTOR'
+ contained-holder:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONTAINED_HOLDER'
+ expected-equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EXPECTED_EQUIPMENT'
+ actual-equipment:
+ type: object
+ CONNECTOR:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ CONTAINED_HOLDER:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ EXPECTED_EQUIPMENT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ ACTUAL_EQUIPMENT:
+ type: object
+
+ FIRMWARE_COLLECTION:
+ type: object
+ required:
+ - firmware-component-list
+ properties:
+ firmware-component-list:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_LIST'
+ FIRMWARE_COMPONENT_LIST:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - firmware-component-pac
+ properties:
+ local-id:
+ type: string
+ firmware-component-pac:
+ type: object
+ required:
+ - firmware-component-capability
+ - firmware-component-status
+ properties:
+ firmware-component-capability:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_CAPABILITY'
+ firmware-component-status:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_STATUS'
+ FIRMWARE_COMPONENT_CAPABILITY:
+ type: object
+ FIRMWARE_COMPONENT_STATUS:
+ type: object
+
+ PROFILE_COLLECTION:
+ type: object
+ required:
+ - profile
+ properties:
+ profile:
+ type: array
+ items:
+ $ref: '#/components/schemas/PROFILE'
+ PROFILE:
+ oneOf:
+ - description: 'co-channel-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - co-channel-profile-1-0:co-channel-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'co-channel-profile-1-0:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE'
+ co-channel-profile-1-0:co-channel-profile-pac:
+ type: object
+ required:
+ - co-channel-profile-capability
+ - co-channel-profile-configuration
+ properties:
+ co-channel-profile-capability:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CAPABILITY'
+ co-channel-profile-configuration:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CONFIGURATION'
+ - description: 'policing-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - policing-profile-1-0:policing-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'policing-profile-1-0:PROFILE_NAME_TYPE_POLICING_PROFILE'
+ policing-profile-1-0:policing-profile-pac:
+ type: object
+ required:
+ - policing-profile-capability
+ - policing-profile-configuration
+ properties:
+ policing-profile-capability:
+ $ref: '#/components/schemas/POLICING_PROFILE_CAPABILITY'
+ policing-profile-configuration:
+ $ref: '#/components/schemas/POLICING_PROFILE_CONFIGURATION'
+ - description: 'qos-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - qos-profile-1-0:qos-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'qos-profile-1-0:PROFILE_NAME_TYPE_QOS_PROFILE'
+ qos-profile-1-0:qos-profile-pac:
+ type: object
+ required:
+ - qos-profile-capability
+ - qos-profile-configuration
+ properties:
+ qos-profile-capability:
+ $ref: '#/components/schemas/QOS_PROFILE_CAPABILITY'
+ qos-profile-configuration:
+ $ref: '#/components/schemas/QOS_PROFILE_CONFIGURATION'
+ - description: 'scheduler-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - scheduler-profile-1-0:scheduler-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'scheduler-profile-1-0:PROFILE_NAME_TYPE_SCHEDULER_PROFILE'
+ scheduler-profile-1-0:scheduler-profile-pac:
+ type: object
+ required:
+ - scheduler-profile-capability
+ - scheduler-profile-configuration
+ properties:
+ scheduler-profile-capability:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CAPABILITY'
+ scheduler-profile-configuration:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CONFIGURATION'
+ - description: 'wred-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-profile-1-0:wred-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-profile-1-0:PROFILE_NAME_TYPE_WRED_PROFILE'
+ wred-profile-1-0:wred-profile-pac:
+ type: object
+ required:
+ - wred-profile-capability
+ - wred-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_PROFILE_CONFIGURATION'
+ - description: 'wred-template-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-template-profile-1-0:wred-template-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-template-profile-1-0:PROFILE_NAME_TYPE_WRED_TEMPLATE_PROFILE'
+ wred-template-profile-1-0:wred-template-profile-pac:
+ type: object
+ required:
+ - wred-template-profile-capability
+ - wred-template-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CONFIGURATION'
+ CO_CHANNEL_PROFILE_CAPABILITY:
+ type: object
+ CO_CHANNEL_PROFILE_CONFIGURATION:
+ type: object
+ POLICING_PROFILE_CAPABILITY:
+ type: object
+ POLICING_PROFILE_CONFIGURATION:
+ type: object
+ QOS_PROFILE_CAPABILITY:
+ type: object
+ QOS_PROFILE_CONFIGURATION:
+ type: object
+ SCHEDULER_PROFILE_CAPABILITY:
+ type: object
+ SCHEDULER_PROFILE_CONFIGURATION:
+ type: object
+ WRED_PROFILE_CAPABILITY:
+ type: object
+ WRED_PROFILE_CONFIGURATION:
+ type: object
+ WRED_TEMPLATE_PROFILE_CAPABILITY:
+ type: object
+ WRED_TEMPLATE_PROFILE_CONFIGURATION:
+ type: object
+
+ LOGICAL_TERMINATION_POINT:
+ type: object
+ required:
+ - uuid
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-augment-1-0:ltp-augment-pac:
+ $ref: '#/components/schemas/LTP_AUGMENT_PAC'
+ embedded-clock:
+ type: array
+ items:
+ $ref: '#/components/schemas/EMBEDDED_CLOCK'
+ layer-protocol:
+ type: array
+ items:
+ $ref: '#/components/schemas/LAYER_PROTOCOL'
+ LTP_AUGMENT_PAC:
+ type: object
+ EMBEDDED_CLOCK:
+ type: object
+ LAYER_PROTOCOL:
+ oneOf:
+ - description: 'air-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - air-interface-2-0:air-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ air-interface-2-0:air-interface-pac:
+ $ref: '#/components/schemas/AIR_INTERFACE_PAC'
+ - description: 'ethernet-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ethernet-container-2-0:ethernet-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER'
+ ethernet-container-2-0:ethernet-container-pac:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_PAC'
+ - description: 'hybrid-mw-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - hybrid-mw-structure-2-0:hybrid-mw-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER'
+ hybrid-mw-structure-2-0:hybrid-mw-structure-pac:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_PAC'
+ - description: 'mac-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - mac-interface-1-0:mac-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER'
+ mac-interface-1-0:mac-interface-pac:
+ $ref: '#/components/schemas/MAC_INTERFACE_PAC'
+ - description: 'pure-ethernet-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - pure-ethernet-structure-2-0:pure-ethernet-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER'
+ pure-ethernet-structure-2-0:pure-ethernet-structure-pac:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_PAC'
+ - description: 'vlan-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - vlan-interface-1-0:vlan-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER'
+ vlan-interface-1-0:vlan-interface-pac:
+ $ref: '#/components/schemas/VLAN_INTERFACE_PAC'
+ - description: 'wire-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - wire-interface-2-0:wire-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER'
+ wire-interface-2-0:wire-interface-pac:
+ $ref: '#/components/schemas/WIRE_INTERFACE_PAC'
+ - description: 'ip-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ip-interface-1-0:ip-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER'
+ ip-interface-1-0:ip-interface-pac:
+ $ref: '#/components/schemas/IP_INTERFACE_PAC'
+ - description: 'tdm-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tdm-container-2-0:tdm-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER'
+ tdm-container-2-0:tdm-container-pac:
+ $ref: '#/components/schemas/TDM_CONTAINER_PAC'
+ FORWARDING_DOMAIN:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT'
+ FORWARDING_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT_PORT'
+ FORWARDING_CONSTRUCT_PORT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ LINK:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+ LINK_PORT:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+
+ AIR_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-historical-performances
+ additionalProperties: false
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-current-performance
+ - air-interface-historical-performances
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-current-performance:
+ $ref: '#/components/schemas/AIR_INTERFACE_CURRENT_PERFORMANCE'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ AIR_INTERFACE_CAPABILITY:
+ type: object
+ AIR_INTERFACE_CONFIGURATION:
+ type: object
+ AIR_INTERFACE_STATUS:
+ type: object
+ AIR_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ AIR_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ ETHERNET_CONTAINER_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-historical-performances
+ additionalProperties: false
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-current-performance
+ - ethernet-container-historical-performances
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-current-performance:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CURRENT_PERFORMANCE'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ ETHERNET_CONTAINER_CAPABILITY:
+ type: object
+ ETHERNET_CONTAINER_CONFIGURATION:
+ type: object
+ ETHERNET_CONTAINER_STATUS:
+ type: object
+ ETHERNET_CONTAINER_CURRENT_PERFORMANCE:
+ type: object
+ ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES:
+ type: object
+
+ HYBRID_MW_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-historical-performances
+ additionalProperties: false
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-current-performance
+ - hybrid-mw-structure-historical-performances
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-current-performance:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ HYBRID_MW_STRUCTURE_CAPABILITY:
+ type: object
+ HYBRID_MW_STRUCTURE_CONFIGURATION:
+ type: object
+ HYBRID_MW_STRUCTURE_STATUS:
+ type: object
+ HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ MAC_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ - description: 'live'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ MAC_INTERFACE_CAPABILITY:
+ type: object
+ MAC_INTERFACE_CONFIGURATION:
+ type: object
+ MAC_INTERFACE_STATUS:
+ type: object
+
+ PURE_ETHERNET_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-historical-performances
+ additionalProperties: false
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-current-performance
+ - pure-ethernet-structure-historical-performances
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-current-performance:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ PURE_ETHERNET_STRUCTURE_CAPABILITY:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CONFIGURATION:
+ type: object
+ PURE_ETHERNET_STRUCTURE_STATUS:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ VLAN_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ additionalProperties: false
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ - description: 'live'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ VLAN_INTERFACE_CAPABILITY:
+ type: object
+ VLAN_INTERFACE_CONFIGURATION:
+ type: object
+
+ WIRE_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-historical-performances
+ additionalProperties: false
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-current-performance
+ - wire-interface-historical-performances
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-current-performance:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CURRENT_PERFORMANCE'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ WIRE_INTERFACE_CAPABILITY:
+ type: object
+ WIRE_INTERFACE_CONFIGURATION:
+ type: object
+ WIRE_INTERFACE_STATUS:
+ type: object
+ WIRE_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ WIRE_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+ IP_INTERFACE_PAC:
+ type: object
+ required:
+ - ip-interface-capability
+ - ip-interface-configuration
+ - ip-interface-status
+ properties:
+ ip-interface-capability:
+ $ref: '#/components/schemas/IP_INTERFACE_CAPABILITY'
+ ip-interface-configuration:
+ $ref: '#/components/schemas/IP_INTERFACE_CONFIGURATION'
+ ip-interface-status:
+ $ref: '#/components/schemas/IP_INTERFACE_STATUS'
+ IP_INTERFACE_CAPABILITY:
+ type: object
+ IP_INTERFACE_CONFIGURATION:
+ type: object
+ IP_INTERFACE_STATUS:
+ type: object
+
+ TDM_CONTAINER_PAC:
+ type: object
+ required:
+ - tdm-container-capability
+ - tdm-container-configuration
+ - tdm-container-status
+ properties:
+ tdm-container-capability:
+ $ref: '#/components/schemas/TDM_CONTAINER_CAPABILITY'
+ tdm-container-configuration:
+ $ref: '#/components/schemas/TDM_CONTAINER_CONFIGURATION'
+ tdm-container-status:
+ $ref: '#/components/schemas/TDM_CONTAINER_STATUS'
+ TDM_CONTAINER_CAPABILITY:
+ type: object
+ TDM_CONTAINER_CONFIGURATION:
+ type: object
+ TDM_CONTAINER_STATUS:
+ type: object
+
+ securitySchemes:
+ apiKeyAuth:
+ type: apiKey
+ in: header
+ name: operation-key
+ basicAuth:
+ type: http
+ scheme: basic
diff --git a/testing/2_functional/completeness/v1.2.2/Subscriptions/README.md b/testing/2_functional/completeness/v1.2.2/Subscriptions/README.md
new file mode 100644
index 00000000..bdd5ff02
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Subscriptions/README.md
@@ -0,0 +1,12 @@
+# Functional Testing of Completeness of offered Subscriptions
+
+
+
+Note:
+Then the *notify* services are called by subscribers to subscribe for receiving notifications from MWDI,
+the subscribers must hand over their contact information (e.g. ip, port and their receive operation) in the requestBody of the request.
+As in this testcase collection it only shall be tested, whether the services correctly return a 204 and not the receipt of notifications or anything else, it is sufficient to not provide parametrized subscriber
+information (i.e. if parametrization would have been required, the related parameters would have been included in the datafile).
+
+
+
diff --git a/testing/2_functional/completeness/v1.2.2/Subscriptions/mwdi+data.completeness.subscriptions.json b/testing/2_functional/completeness/v1.2.2/Subscriptions/mwdi+data.completeness.subscriptions.json
new file mode 100644
index 00000000..bcedf5a0
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Subscriptions/mwdi+data.completeness.subscriptions.json
@@ -0,0 +1,52 @@
+[
+ {
+ "mode": "debug",
+ "serverList": [
+ {
+ "serverName": "dummy",
+ "dummyUri": "ping.openBackhaul.com"
+ },
+ {
+ "serverName": "mwdi",
+ "server": "http://IP_ADRESS:PORT",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "YOUR_BASIC_AUTH_CODE",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "mwdi in mwdi+simulator.completeness.subscriptions",
+ "server": "http://localhost:3002",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ }
+ ],
+ "collectionInputList": [
+ {
+ "collectionName": "completeness.subscriptions",
+ "serverToBeApplied": "mwdi",
+ "mountName": "513250004",
+ "linkId": "101550001",
+ "kindOfReference": "dynamic"
+ },
+ {
+ "collectionName": "completeness.subscriptions_simulator",
+ "serverToBeApplied": "mwdi in mwdi+simulator.completeness.subscriptions",
+ "mountName": "305250001",
+ "linkId": "101550001",
+ "kindOfReference": "static",
+ "suffixUrlEncodingIsRequired": true
+ }
+ ]
+ }
+]
diff --git a/testing/2_functional/completeness/v1.2.2/Subscriptions/mwdi+diagram.completeness.subscriptions.plantuml b/testing/2_functional/completeness/v1.2.2/Subscriptions/mwdi+diagram.completeness.subscriptions.plantuml
new file mode 100644
index 00000000..36d663ac
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Subscriptions/mwdi+diagram.completeness.subscriptions.plantuml
@@ -0,0 +1,52 @@
+@startuml mwdi+diagram.completeness.subscriptions
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.completeness.subscriptions
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+participant "/v1/notify-attribute-value-changes" as NAVC
+participant "/v1/notify-object-creations" as NOC
+participant "/v1/notify-object-deletions" as NOD
+
+
+group Preparation
+ Data --\\o Postman : {servers}
+ activate Postman
+ Postman --\\o Collection : {servers}
+end
+
+group /v1/notify-attribute-value-changes
+ Collection --\\o Postman : {servers}
+ Postman -> NAVC : {subscriber-application, subscriber-release-number, subscriber-operation,\n subscriber-protocol, subscriber-address, subscriber-port}
+ Postman <-- NAVC : 204
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+group /v1/notify-object-creations
+ Collection --\\o Postman : {servers}
+ Postman -> NOC : {subscriber-application, subscriber-release-number, subscriber-operation,\n subscriber-protocol, subscriber-address, subscriber-port}
+ Postman <-- NOC : 204
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+group /v1/notify-object-deletions
+ Collection --\\o Postman : {servers}
+ Postman -> NOD : {subscriber-application, subscriber-release-number, subscriber-operation,\n subscriber-protocol, subscriber-address, subscriber-port}
+ Postman <-- NOD : 204
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/completeness/v1.2.2/Subscriptions/mwdi+diagram.completeness.subscriptions.png b/testing/2_functional/completeness/v1.2.2/Subscriptions/mwdi+diagram.completeness.subscriptions.png
new file mode 100644
index 00000000..bf1c5fb7
Binary files /dev/null and b/testing/2_functional/completeness/v1.2.2/Subscriptions/mwdi+diagram.completeness.subscriptions.png differ
diff --git a/testing/2_functional/completeness/v1.2.2/Subscriptions/mwdi+testcase.completeness.subscriptions.json b/testing/2_functional/completeness/v1.2.2/Subscriptions/mwdi+testcase.completeness.subscriptions.json
new file mode 100644
index 00000000..a9cb848b
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Subscriptions/mwdi+testcase.completeness.subscriptions.json
@@ -0,0 +1,1220 @@
+{
+ "info": {
+ "name": "mwdi+testcase.completeness.subscriptions",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "UserInput",
+ "item": [
+ {
+ "name": "for loading user input",
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "exec": [
+ "console.clear();\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "logger.struc(\"===== mwdi+testcase.completeness.subscriptions ==========================\");\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Loading Input Data from File\r",
+ "****************************************************************************************/\r",
+ "var inputFromFile;\r",
+ "try {\r",
+ " inputFromFile = data\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Input data could not be loaded.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Environmental Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.environment.clear();\r",
+ "\r",
+ " let mode;\r",
+ " mode = inputFromFile.mode;\r",
+ " // Mode to be applied while running this testcase collection \r",
+ " // \"analysis\" -> human does detailed analysis of response bodies etc.\r",
+ " // \"testing\" -> automated approval based on binary result\r",
+ " // \"debugging\" -> support for programming the testcase collection\r",
+ "\r",
+ " let logLevel;\r",
+ " switch(mode) {\r",
+ " case \"debugging\":\r",
+ " logLevel = \"debug\";\r",
+ " break;\r",
+ " case \"analysis\":\r",
+ " logLevel = \"log\";\r",
+ " break;\r",
+ " case \"testing\":\r",
+ " logLevel = \"error\";\r",
+ " break;\r",
+ " default:\r",
+ " logLevel = \"debug\";\r",
+ " };\r",
+ " // Level of detail of the logging; find more info in pre-request script on the collection's level\r",
+ "\r",
+ " let serverList = [];\r",
+ " serverList = inputFromFile.serverList;\r",
+ " // list of addresses of applications, controllers etc.\r",
+ " // serverName : key attribute for identifying the servers\r",
+ " // dummyUri : http address that shall be addressed by bare processing Requests\r",
+ " // server : part of the URI that is comprised from protocol, IP address and TCP port\r",
+ " // pathToControlConstruct : part of the URI that is identical for all Requests that are addressing into the device's data tree\r",
+ " // authorizationCode : authentication that has to be sent in case of BasicAuth protection (e.g. OpenDaylight NBI)\r",
+ " // operationKey : ApiKey that has to be sent in case of addressing a MW SDN application (e.g. MicroWaveDeviceInventory)\r",
+ " // userName : user header to be sent in case of addressing a MW SDN application\r",
+ " // originator : originator header to be sent in case of addressing a MW SDN application\r",
+ " // xCorrelator : x-correlator header to be sent in case of addressing a MW SDN application\r",
+ " // traceIndicator : trace-indicator header to be sent in case of addressing a MW SDN application\r",
+ " // customerJourney : customer-journey header to be sent in case of addressing a MW SDN application\r",
+ "\r",
+ " let collectionInputList = [];\r",
+ " collectionInputList = inputFromFile.collectionInputList;\r",
+ " // list of inputs to individual test case collections\r",
+ " // serverToBeApplied : server that shall be addressed in the respective request/test case\r",
+ " // mountName : mountName of the device that is to be validated\r",
+ " // uuid of the object that is to be validated\r",
+ " // localId of the object that is to be validated\r",
+ " // linkId : linkName of the link that is to be validated\r",
+ " // linkPort : id of the linkPort that is to be validated\r",
+ "\r",
+ " pm.environment.set(\"mode\", mode);\r",
+ " pm.environment.set(\"logLevel\", logLevel);\r",
+ " pm.environment.set(\"serverList\", serverList);\r",
+ " pm.environment.set(\"collectionInputList\", collectionInputList);\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Environment variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Collection Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.collectionVariables.clear()\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Collection variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Local Variables and Preparing the Request\r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " let uri;\r",
+ " let dummyServerInfo;\r",
+ " dummyServerInfo = ExtractServerInformation(inputFromFile.serverList, \"dummy\");\r",
+ " uri = dummyServerInfo.dummyUri;\r",
+ "\r",
+ " pm.variables.clear();\r",
+ "\r",
+ " pm.variables.set(\"uri\", uri);\r",
+ "\r",
+ " pm.request.headers.upsert({ key: \"Accept\", value: \"application/json\" });\r",
+ " pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" })\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Local variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Functions\r",
+ "****************************************************************************************/\r",
+ "function ExtractServerInformation(serverList, searchedServerName) {\r",
+ " try {\r",
+ " for(let i=0; i log -> info -> warn -> error -> struc -> none",
+ "// It creates \"logger\" global variable which can be used anywhere in nested collection scripts",
+ "",
+ "const logLevels = [\"debug\", \"log\", \"info\", \"warn\", \"error\", \"struc\", \"none\"];",
+ "",
+ "const shouldLog = (level) => {",
+ " return logLevels.indexOf(level) >= logLevels.indexOf(pm.environment.get(\"logLevel\"));",
+ "};",
+ "",
+ "logger = {",
+ " debug: (message, ...optionalParams) => {",
+ " shouldLog(\"debug\") && console.log(message, ...optionalParams);",
+ " },",
+ " log: (message, ...optionalParams) => {",
+ " shouldLog(\"log\") && console.log(message, ...optionalParams);",
+ " },",
+ " info: (message, ...optionalParams) => {",
+ " shouldLog(\"info\") && console.log(message, ...optionalParams);",
+ " },",
+ " warn: (message, ...optionalParams) => {",
+ " shouldLog(\"warn\") && console.log(message, ...optionalParams);",
+ " },",
+ " error: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.error(message, ...optionalParams);",
+ " },",
+ " struc: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.log(message, ...optionalParams);",
+ " },",
+ "};",
+ ""
+ ]
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/testing/2_functional/completeness/v1.2.2/Subscriptions/simulators/MicroWaveDeviceInventory+simu.completeness.subscriptions.yaml b/testing/2_functional/completeness/v1.2.2/Subscriptions/simulators/MicroWaveDeviceInventory+simu.completeness.subscriptions.yaml
new file mode 100644
index 00000000..4263e8a3
--- /dev/null
+++ b/testing/2_functional/completeness/v1.2.2/Subscriptions/simulators/MicroWaveDeviceInventory+simu.completeness.subscriptions.yaml
@@ -0,0 +1,1861 @@
+openapi: 3.0.0
+info:
+ title: MWDI_1.2.2+simulator.completeness.subscriptions
+ version: 1.0.0
+
+paths:
+########################################################################################################################
+# Service Layer - Individual Part
+# MWDI_1.2.2+simulator.completeness.subscriptions in static reference mode
+########################################################################################################################
+
+ /v1/notify-attribute-value-changes:
+ post:
+ operationId: notifyAttributeValueChanges
+ summary: 'Offers subscribing for notifications about device attributes being changed in the cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscriber-application
+ - subscriber-release-number
+ - subscriber-operation
+ - subscriber-protocol
+ - subscriber-address
+ - subscriber-port
+ properties:
+ subscriber-application:
+ type: string
+ subscriber-release-number:
+ type: string
+ pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
+ subscriber-operation:
+ type: string
+ subscriber-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscriber-address:
+ type: object
+ additionalProperties: false
+ properties:
+ ip-address:
+ type: object
+ additionalProperties: false
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ subscriber-port:
+ type: integer
+ example:
+ subscriber-application: 'HistoricalMicrowaveDeviceInventory'
+ subscriber-release-number: '1.0.0'
+ subscriber-operation: '/v1/regard-attribute-value-change'
+ subscriber-protocol: 'HTTP'
+ subscriber-address:
+ ip-address:
+ ipv-4-address: '127.0.0.1'
+ subscriber-port: 4013
+ responses:
+ '204':
+ description: 'Subscription for notifications about changed device attribute values in the cache has been created'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/notify-object-creations:
+ post:
+ operationId: notifyObjectCreations
+ summary: 'Offers subscribing for notifications about device objects being created in the cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscriber-application
+ - subscriber-release-number
+ - subscriber-operation
+ - subscriber-protocol
+ - subscriber-address
+ - subscriber-port
+ properties:
+ subscriber-application:
+ type: string
+ subscriber-release-number:
+ type: string
+ subscriber-operation:
+ type: string
+ subscriber-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscriber-address:
+ type: object
+ additionalProperties: false
+ properties:
+ ip-address:
+ type: object
+ additionalProperties: false
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ subscriber-port:
+ type: integer
+ example:
+ subscriber-application: 'HistoricalMicrowaveDeviceInventory'
+ subscriber-release-number: '1.0.0'
+ subscriber-operation: '/v1/regard-object-creation'
+ subscriber-protocol: 'HTTP'
+ subscriber-address:
+ ip-address:
+ ipv-4-address: '127.0.0.1'
+ subscriber-port: 4013
+ responses:
+ '204':
+ description: 'Subscription for notifications about device objects created in the cache has been documented'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/notify-object-deletions:
+ post:
+ operationId: notifyObjectDeletions
+ summary: 'Offers subscribing for notifications about device objects being deleted from the cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscriber-application
+ - subscriber-release-number
+ - subscriber-operation
+ - subscriber-protocol
+ - subscriber-address
+ - subscriber-port
+ properties:
+ subscriber-application:
+ type: string
+ subscriber-release-number:
+ type: string
+ subscriber-operation:
+ type: string
+ subscriber-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscriber-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ subscriber-port:
+ type: integer
+ example:
+ subscriber-application: 'HistoricalMicrowaveDeviceInventory'
+ subscriber-release-number: '1.0.0'
+ subscriber-operation: '/v1/regard-object-deletion'
+ subscriber-protocol: 'HTTP'
+ subscriber-address:
+ ip-address:
+ ipv-4-address: '127.0.0.1'
+ subscriber-port: 4013
+ responses:
+ '204':
+ description: 'Subscription for notifications about device objects deleted from the cache has been created'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+########################################################################################################################
+# Common Components
+########################################################################################################################
+components:
+ parameters:
+ user:
+ name: user
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'User Name'
+ description: 'User identifier from the system starting the service call'
+ originator:
+ name: originator
+ in: header
+ required: true
+ schema:
+ type: string
+ minLength: 3
+ example: 'Resolver'
+ description: >
+ 'Identification for the system consuming the API, as defined in
+ [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]'
+ x-correlator:
+ name: x-correlator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ description: 'Empty string accepted from external applications.'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses'
+ trace-indicator:
+ name: trace-indicator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^([0-9]+)(\.([0-9]+))*$'
+ description: 'Empty string accepted from external applications.'
+ example: '1.3.1'
+ description: 'Sequence of request numbers along the flow'
+ customer-journey:
+ name: customer-journey
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'Unknown value'
+ description: 'Holds information supporting customer’s journey to which the execution applies'
+ mountName:
+ name: mountName
+ in: path
+ required: true
+ schema:
+ type: string
+ example: '222250001'
+ description: 'The mountName of the device that is addressed by the request'
+ uuid:
+ name: uuid
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within the device'
+ uuid1:
+ name: uuid1
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Another instance identifier that is unique within the device'
+ localId:
+ name: localId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within its list'
+ fields:
+ name: fields
+ in: query
+ required: false
+ schema:
+ type: string
+ example: 'node(node-id;netconf-node-topology:connection-status)'
+ description: 'Query parameter to filter ressources according to RFC8040 fields filter spec'
+ responses:
+ responseForErroredServiceRequests:
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ responseForErroredOamRequests:
+ description: 'Response in case of errored OaM requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ '429':
+ description: 'Response in case too many requests need to be executed in parallel or too many requests have been received within a time period. The maximum number of parallel requests is defined in an IntegerProfile with the service name as a prefix and MaxNumberOfParallelRequests as a suffix. Some time period to elapse for throttling incomming requests is defined in an IntegerProfile with the service name as a prefix and ThrottlingPeriod as a suffix'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 429
+ maximum: 429
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Too many requests'
+ '460':
+ description: 'Response in case the mountName provided in the request is not found in the list of connected devices'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 460
+ maximum: 460
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not connected. Requested device is currently not in connected state at the controller'
+ '461':
+ description: 'Response in case the (parent) topology object provided in the request (body or path) is not found in the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 461
+ maximum: 461
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not available. The topology (parent) object is currently not found in the cache.'
+ '470':
+ description: 'Response in case the resource specified in the request does not exist within the connected device'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 470
+ maximum: 470
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource not existing. Device informs about addressed resource unknown'
+ '471':
+ description: 'Response in case the (child) topology object specified in the request (body or path) does not exist within the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 471
+ maximum: 471
+ format: int32
+ message:
+ type: string
+ enum:
+ - '(Child) topology object not existing. Cache informs about addressed resource unknown.'
+ '502':
+ description: 'Response in case the server is acting as a gateway or proxy and received an invalid response from the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 502
+ maximum: 502
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway'
+ '530':
+ description: 'Response in case the referenced resource exists (e.g. device connected and resource exists in internal datatree), but response data is either not available, lost during transmission, incomplete or corrupted'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 530
+ maximum: 530
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Data invalid. Response data not available, incomplete or corrupted'
+ '531':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to authenticate at the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 531
+ maximum: 531
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Authentication at upstream server failed.'
+ '532':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to connect to the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 532
+ maximum: 532
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Upstream server not responding.'
+ '533':
+ description: 'Response in case the referenced resource for an connected device does not exist at the controller.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 533
+ maximum: 533
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource unknown. The resource for the connected device does not exist at the Controller.'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ life-cycle-state:
+ schema:
+ type: string
+ enum:
+ - 'EXPERIMENTAL'
+ - 'OPERATIONAL'
+ - 'DEPRECATED'
+ - 'OBSOLETE'
+ - 'UNKNOWN'
+ - 'NOT_YET_DEFINED'
+ example: 'EXPERIMENTAL'
+ schemas:
+ errorDescription:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
+ genericRepresentation:
+ type: object
+ required:
+ - response-value-list
+ - consequent-action-list
+ properties:
+ response-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ - value
+ - datatype
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Field name
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]'
+ value:
+ type: string
+ description: >
+ 'Field value
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]'
+ datatype:
+ type: string
+ description: >
+ 'Field datatype
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]'
+ consequent-action-list:
+ type: array
+ items:
+ type: object
+ required:
+ - label
+ - request
+ - display-in-new-browser-window
+ properties:
+ label:
+ type: string
+ description: >
+ 'Label that shall be presented on the button
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]'
+ request:
+ type: string
+ description: >
+ 'Request that shall be called, when button gets pressed
+ from
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}]
+ ://
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address}
+ or
+ {/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}]
+ :
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}]
+ [{/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]'
+ input-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Name of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]'
+ unit:
+ type: string
+ description: >
+ 'Unit of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]'
+ display-in-new-browser-window:
+ type: boolean
+ description: >
+ 'True in case Request shall be represented in a new browser window
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]'
+ logicalTerminationPoint:
+ type: object
+ required:
+ - uuid
+ - ltp-direction
+ - client-ltp
+ - server-ltp
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-direction:
+ type: string
+ client-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ server-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ layer-protocol:
+ type: array
+ minItems: 1
+ maxItems: 1
+ items:
+ oneOf:
+ - description: 'operation server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-server-interface-1-0:operation-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-server-interface-1-0:operation-server-interface-pac:
+ type: object
+ required:
+ - operation-server-interface-capability
+ - operation-server-interface-configuration
+ properties:
+ operation-server-interface-capability:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-server-interface-configuration:
+ type: object
+ required:
+ - life-cycle-state
+ properties:
+ life-cycle-state:
+ type: string
+ - description: 'http server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-server-interface-1-0:http-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-server-interface-1-0:http-server-interface-pac:
+ type: object
+ required:
+ - http-server-interface-capability
+ properties:
+ http-server-interface-capability:
+ type: object
+ required:
+ - application-name
+ - release-number
+ - data-update-period
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ data-update-period:
+ type: string
+ - description: 'tcp server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-server-interface-1-0:tcp-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-server-interface-1-0:tcp-server-interface-pac:
+ type: object
+ required:
+ - tcp-server-interface-configuration
+ properties:
+ tcp-server-interface-configuration:
+ type: object
+ required:
+ - description
+ - local-protocol
+ - local-address
+ - local-port
+ properties:
+ description:
+ type: string
+ local-protocol:
+ type: string
+ local-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ local-port:
+ type: integer
+ - description: 'operation client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-client-interface-1-0:operation-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-client-interface-1-0:operation-client-interface-pac:
+ type: object
+ required:
+ - operation-client-interface-configuration
+ - operation-client-interface-status
+ properties:
+ operation-client-interface-configuration:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'elasticsearch client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac:
+ type: object
+ required:
+ - elasticsearch-client-interface-configuration
+ - elasticsearch-client-interface-status
+ properties:
+ elasticsearch-client-interface-configuration:
+ type: object
+ required:
+ - index-alias
+ properties:
+ index-alias:
+ type: string
+ elasticsearch-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'http client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-client-interface-1-0:http-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-client-interface-1-0:http-client-interface-pac:
+ type: object
+ required:
+ - http-client-interface-configuration
+ properties:
+ http-client-interface-configuration:
+ type: object
+ required:
+ - application-name
+ - release-number
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ - description: 'tcp client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-client-interface-1-0:tcp-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-client-interface-1-0:tcp-client-interface-pac:
+ type: object
+ required:
+ - tcp-client-interface-configuration
+ properties:
+ tcp-client-interface-configuration:
+ type: object
+ required:
+ - remote-protocol
+ - remote-address
+ - remote-port
+ properties:
+ remote-protocol:
+ type: string
+ remote-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ remote-port:
+ type: integer
+ forwardingDomain:
+ type: object
+ required:
+ - uuid
+ - forwarding-construct
+ properties:
+ uuid:
+ type: string
+ forwarding-construct:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - name
+ - fc-port
+ properties:
+ uuid:
+ type: string
+ name:
+ type: array
+ items:
+ type: object
+ required:
+ - value-name
+ - value
+ properties:
+ value-name:
+ type: string
+ value:
+ type: string
+ fc-port:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ port-direction:
+ type: string
+ logical-termination-point:
+ type: string
+
+ CONTROL_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ - alarms-1-0:alarm-pac
+ - equipment
+ - firmware-1-0:firmware-collection
+ - profile-collection
+ - logical-termination-point
+ properties:
+ uuid:
+ type: string
+ alarms-1-0:alarm-pac:
+ $ref: '#/components/schemas/ALARM_PAC'
+ equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EQUIPMENT'
+ firmware-1-0:firmware-collection:
+ $ref: '#/components/schemas/FIRMWARE_COLLECTION'
+ profile-collection:
+ $ref: '#/components/schemas/PROFILE_COLLECTION'
+ forwarding-domain:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_DOMAIN'
+ logical-termination-point:
+ type: array
+ items:
+ $ref: '#/components/schemas/LOGICAL_TERMINATION_POINT'
+
+ ALARM_PAC:
+ type: object
+ required:
+ - alarm-capability
+ - alarm-configuration
+ - current-alarms
+ - alarm-event-records
+ properties:
+ alarm-capability:
+ $ref: '#/components/schemas/ALARM_CAPABILITY'
+ alarm-configuration:
+ $ref: '#/components/schemas/ALARM_CONFIGURATION'
+ current-alarms:
+ $ref: '#/components/schemas/CURRENT_ALARMS'
+ alarm-event-records:
+ $ref: '#/components/schemas/ALARM_EVENT_RECORDS'
+ ALARM_CAPABILITY:
+ type: object
+ ALARM_CONFIGURATION:
+ type: object
+ CURRENT_ALARMS:
+ type: object
+ ALARM_EVENT_RECORDS:
+ type: object
+
+ EQUIPMENT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ connector:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONNECTOR'
+ contained-holder:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONTAINED_HOLDER'
+ expected-equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EXPECTED_EQUIPMENT'
+ actual-equipment:
+ type: object
+ CONNECTOR:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ CONTAINED_HOLDER:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ EXPECTED_EQUIPMENT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ ACTUAL_EQUIPMENT:
+ type: object
+
+ FIRMWARE_COLLECTION:
+ type: object
+ required:
+ - firmware-component-list
+ properties:
+ firmware-component-list:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_LIST'
+ FIRMWARE_COMPONENT_LIST:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - firmware-component-pac
+ properties:
+ local-id:
+ type: string
+ firmware-component-pac:
+ type: object
+ required:
+ - firmware-component-capability
+ - firmware-component-status
+ properties:
+ firmware-component-capability:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_CAPABILITY'
+ firmware-component-status:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_STATUS'
+ FIRMWARE_COMPONENT_CAPABILITY:
+ type: object
+ FIRMWARE_COMPONENT_STATUS:
+ type: object
+
+ PROFILE_COLLECTION:
+ type: object
+ required:
+ - profile
+ properties:
+ profile:
+ type: array
+ items:
+ $ref: '#/components/schemas/PROFILE'
+ PROFILE:
+ oneOf:
+ - description: 'co-channel-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - co-channel-profile-1-0:co-channel-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'co-channel-profile-1-0:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE'
+ co-channel-profile-1-0:co-channel-profile-pac:
+ type: object
+ required:
+ - co-channel-profile-capability
+ - co-channel-profile-configuration
+ properties:
+ co-channel-profile-capability:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CAPABILITY'
+ co-channel-profile-configuration:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CONFIGURATION'
+ - description: 'policing-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - policing-profile-1-0:policing-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'policing-profile-1-0:PROFILE_NAME_TYPE_POLICING_PROFILE'
+ policing-profile-1-0:policing-profile-pac:
+ type: object
+ required:
+ - policing-profile-capability
+ - policing-profile-configuration
+ properties:
+ policing-profile-capability:
+ $ref: '#/components/schemas/POLICING_PROFILE_CAPABILITY'
+ policing-profile-configuration:
+ $ref: '#/components/schemas/POLICING_PROFILE_CONFIGURATION'
+ - description: 'qos-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - qos-profile-1-0:qos-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'qos-profile-1-0:PROFILE_NAME_TYPE_QOS_PROFILE'
+ qos-profile-1-0:qos-profile-pac:
+ type: object
+ required:
+ - qos-profile-capability
+ - qos-profile-configuration
+ properties:
+ qos-profile-capability:
+ $ref: '#/components/schemas/QOS_PROFILE_CAPABILITY'
+ qos-profile-configuration:
+ $ref: '#/components/schemas/QOS_PROFILE_CONFIGURATION'
+ - description: 'scheduler-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - scheduler-profile-1-0:scheduler-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'scheduler-profile-1-0:PROFILE_NAME_TYPE_SCHEDULER_PROFILE'
+ scheduler-profile-1-0:scheduler-profile-pac:
+ type: object
+ required:
+ - scheduler-profile-capability
+ - scheduler-profile-configuration
+ properties:
+ scheduler-profile-capability:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CAPABILITY'
+ scheduler-profile-configuration:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CONFIGURATION'
+ - description: 'wred-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-profile-1-0:wred-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-profile-1-0:PROFILE_NAME_TYPE_WRED_PROFILE'
+ wred-profile-1-0:wred-profile-pac:
+ type: object
+ required:
+ - wred-profile-capability
+ - wred-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_PROFILE_CONFIGURATION'
+ - description: 'wred-template-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-template-profile-1-0:wred-template-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-template-profile-1-0:PROFILE_NAME_TYPE_WRED_TEMPLATE_PROFILE'
+ wred-template-profile-1-0:wred-template-profile-pac:
+ type: object
+ required:
+ - wred-template-profile-capability
+ - wred-template-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CONFIGURATION'
+ CO_CHANNEL_PROFILE_CAPABILITY:
+ type: object
+ CO_CHANNEL_PROFILE_CONFIGURATION:
+ type: object
+ POLICING_PROFILE_CAPABILITY:
+ type: object
+ POLICING_PROFILE_CONFIGURATION:
+ type: object
+ QOS_PROFILE_CAPABILITY:
+ type: object
+ QOS_PROFILE_CONFIGURATION:
+ type: object
+ SCHEDULER_PROFILE_CAPABILITY:
+ type: object
+ SCHEDULER_PROFILE_CONFIGURATION:
+ type: object
+ WRED_PROFILE_CAPABILITY:
+ type: object
+ WRED_PROFILE_CONFIGURATION:
+ type: object
+ WRED_TEMPLATE_PROFILE_CAPABILITY:
+ type: object
+ WRED_TEMPLATE_PROFILE_CONFIGURATION:
+ type: object
+
+ LOGICAL_TERMINATION_POINT:
+ type: object
+ required:
+ - uuid
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-augment-1-0:ltp-augment-pac:
+ $ref: '#/components/schemas/LTP_AUGMENT_PAC'
+ embedded-clock:
+ type: array
+ items:
+ $ref: '#/components/schemas/EMBEDDED_CLOCK'
+ layer-protocol:
+ type: array
+ items:
+ $ref: '#/components/schemas/LAYER_PROTOCOL'
+ LTP_AUGMENT_PAC:
+ type: object
+ EMBEDDED_CLOCK:
+ type: object
+ LAYER_PROTOCOL:
+ oneOf:
+ - description: 'air-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - air-interface-2-0:air-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ air-interface-2-0:air-interface-pac:
+ $ref: '#/components/schemas/AIR_INTERFACE_PAC'
+ - description: 'ethernet-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ethernet-container-2-0:ethernet-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER'
+ ethernet-container-2-0:ethernet-container-pac:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_PAC'
+ - description: 'hybrid-mw-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - hybrid-mw-structure-2-0:hybrid-mw-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER'
+ hybrid-mw-structure-2-0:hybrid-mw-structure-pac:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_PAC'
+ - description: 'mac-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - mac-interface-1-0:mac-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER'
+ mac-interface-1-0:mac-interface-pac:
+ $ref: '#/components/schemas/MAC_INTERFACE_PAC'
+ - description: 'pure-ethernet-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - pure-ethernet-structure-2-0:pure-ethernet-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER'
+ pure-ethernet-structure-2-0:pure-ethernet-structure-pac:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_PAC'
+ - description: 'vlan-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - vlan-interface-1-0:vlan-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER'
+ vlan-interface-1-0:vlan-interface-pac:
+ $ref: '#/components/schemas/VLAN_INTERFACE_PAC'
+ - description: 'wire-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - wire-interface-2-0:wire-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER'
+ wire-interface-2-0:wire-interface-pac:
+ $ref: '#/components/schemas/WIRE_INTERFACE_PAC'
+ - description: 'ip-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ip-interface-1-0:ip-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER'
+ ip-interface-1-0:ip-interface-pac:
+ $ref: '#/components/schemas/IP_INTERFACE_PAC'
+ - description: 'tdm-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tdm-container-2-0:tdm-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER'
+ tdm-container-2-0:tdm-container-pac:
+ $ref: '#/components/schemas/TDM_CONTAINER_PAC'
+ FORWARDING_DOMAIN:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT'
+ FORWARDING_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT_PORT'
+ FORWARDING_CONSTRUCT_PORT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ LINK:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+ LINK_PORT:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+
+ AIR_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-historical-performances
+ additionalProperties: false
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-current-performance
+ - air-interface-historical-performances
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-current-performance:
+ $ref: '#/components/schemas/AIR_INTERFACE_CURRENT_PERFORMANCE'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ AIR_INTERFACE_CAPABILITY:
+ type: object
+ AIR_INTERFACE_CONFIGURATION:
+ type: object
+ AIR_INTERFACE_STATUS:
+ type: object
+ AIR_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ AIR_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ ETHERNET_CONTAINER_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-historical-performances
+ additionalProperties: false
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-current-performance
+ - ethernet-container-historical-performances
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-current-performance:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CURRENT_PERFORMANCE'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ ETHERNET_CONTAINER_CAPABILITY:
+ type: object
+ ETHERNET_CONTAINER_CONFIGURATION:
+ type: object
+ ETHERNET_CONTAINER_STATUS:
+ type: object
+ ETHERNET_CONTAINER_CURRENT_PERFORMANCE:
+ type: object
+ ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES:
+ type: object
+
+ HYBRID_MW_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-historical-performances
+ additionalProperties: false
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-current-performance
+ - hybrid-mw-structure-historical-performances
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-current-performance:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ HYBRID_MW_STRUCTURE_CAPABILITY:
+ type: object
+ HYBRID_MW_STRUCTURE_CONFIGURATION:
+ type: object
+ HYBRID_MW_STRUCTURE_STATUS:
+ type: object
+ HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ MAC_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ - description: 'live'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ MAC_INTERFACE_CAPABILITY:
+ type: object
+ MAC_INTERFACE_CONFIGURATION:
+ type: object
+ MAC_INTERFACE_STATUS:
+ type: object
+
+ PURE_ETHERNET_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-historical-performances
+ additionalProperties: false
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-current-performance
+ - pure-ethernet-structure-historical-performances
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-current-performance:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ PURE_ETHERNET_STRUCTURE_CAPABILITY:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CONFIGURATION:
+ type: object
+ PURE_ETHERNET_STRUCTURE_STATUS:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ VLAN_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ additionalProperties: false
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ - description: 'live'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ VLAN_INTERFACE_CAPABILITY:
+ type: object
+ VLAN_INTERFACE_CONFIGURATION:
+ type: object
+
+ WIRE_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-historical-performances
+ additionalProperties: false
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-current-performance
+ - wire-interface-historical-performances
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-current-performance:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CURRENT_PERFORMANCE'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ WIRE_INTERFACE_CAPABILITY:
+ type: object
+ WIRE_INTERFACE_CONFIGURATION:
+ type: object
+ WIRE_INTERFACE_STATUS:
+ type: object
+ WIRE_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ WIRE_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+ IP_INTERFACE_PAC:
+ type: object
+ required:
+ - ip-interface-capability
+ - ip-interface-configuration
+ - ip-interface-status
+ properties:
+ ip-interface-capability:
+ $ref: '#/components/schemas/IP_INTERFACE_CAPABILITY'
+ ip-interface-configuration:
+ $ref: '#/components/schemas/IP_INTERFACE_CONFIGURATION'
+ ip-interface-status:
+ $ref: '#/components/schemas/IP_INTERFACE_STATUS'
+ IP_INTERFACE_CAPABILITY:
+ type: object
+ IP_INTERFACE_CONFIGURATION:
+ type: object
+ IP_INTERFACE_STATUS:
+ type: object
+
+ TDM_CONTAINER_PAC:
+ type: object
+ required:
+ - tdm-container-capability
+ - tdm-container-configuration
+ - tdm-container-status
+ properties:
+ tdm-container-capability:
+ $ref: '#/components/schemas/TDM_CONTAINER_CAPABILITY'
+ tdm-container-configuration:
+ $ref: '#/components/schemas/TDM_CONTAINER_CONFIGURATION'
+ tdm-container-status:
+ $ref: '#/components/schemas/TDM_CONTAINER_STATUS'
+ TDM_CONTAINER_CAPABILITY:
+ type: object
+ TDM_CONTAINER_CONFIGURATION:
+ type: object
+ TDM_CONTAINER_STATUS:
+ type: object
+
+ securitySchemes:
+ apiKeyAuth:
+ type: apiKey
+ in: header
+ name: operation-key
+ basicAuth:
+ type: http
+ scheme: basic
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/README.md b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/README.md
new file mode 100644
index 00000000..f5da9324
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/README.md
@@ -0,0 +1,9 @@
+# Functional Testing the Handling of invalid or missing requestBodies for the Cache Enrichment
+
+
+
+Currently the enrichment ressource paths only cover the following objects:
+- link
+- link-port
+
+The offered services provide GET, PUT, DELETE operations. A requestBody is only required for the PUT operations.
\ No newline at end of file
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/mwdi+data.completeness.cacheEnrichment.json b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/mwdi+data.completeness.cacheEnrichment.json
new file mode 100644
index 00000000..9c6265b2
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/mwdi+data.completeness.cacheEnrichment.json
@@ -0,0 +1,58 @@
+[
+ {
+ "mode": "debug",
+ "serverList": [
+ {
+ "serverName": "dummy",
+ "dummyUri": "ping.openBackhaul.com"
+ },
+ {
+ "serverName": "mwdi",
+ "server": "http://IP_ADRESS:PORT",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "YOUR_BASIC_AUTH_CODE",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "mwdi in mwdi+simulator.invalidOrMissingRequestBody.cacheEnrichment",
+ "server": "http://localhost:3016",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ }
+ ],
+ "collectionInputList": [
+ {
+ "collectionName": "invalidOrMissingRequestBody.cacheEnrichment",
+ "serverToBeApplied": "mwdi",
+ "mountName": "513250004",
+ "linkId": "101550001",
+ "genericLink": "genericLink1",
+ "mfrLink": "mfrLink1",
+ "linkPort": "1",
+ "kindOfReference": "dynamic"
+ },
+ {
+ "collectionName": "invalidOrMissingRequestBody.cacheEnrichment_simulator",
+ "serverToBeApplied": "mwdi in mwdi+simulator.invalidOrMissingRequestBody.cacheEnrichment",
+ "mountName": "305250001",
+ "linkId": "101550001",
+ "genericLink": "genericLink1",
+ "mfrLink": "mfrLink1",
+ "linkPort": "1",
+ "kindOfReference": "static",
+ "suffixUrlEncodingIsRequired": true
+ }
+ ]
+ }
+]
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/mwdi+diagram.invalidOrMissingRequestBody.cacheEnrichement.plantuml b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/mwdi+diagram.invalidOrMissingRequestBody.cacheEnrichement.plantuml
new file mode 100644
index 00000000..d489050e
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/mwdi+diagram.invalidOrMissingRequestBody.cacheEnrichement.plantuml
@@ -0,0 +1,61 @@
+@startuml mwdi+diagram.invalidOrMissingRequestBody.cacheEnrichement
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.cacheEnrichment.dataprovider
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+participant "/core-model-1-4:network-control-domain=cache/link={uuid}" as LINK
+participant "/core-model-1-4:network-control-domain=cache/link={uuid}/link-port={localId}" as LINKPORT
+
+
+group Preparation
+ Data --\\o Postman : {servers, genericLinkId, mfrLinkId, linkPortId}
+ activate Postman
+ Postman --\\o Collection : {servers, genericLinkId, mfrLinkId, linkPortId}
+end
+
+
+note over Postman, Collection
+ For each service there are two testcases to be executed.
+ Both tests differ in the provided requestBody:
+ - an invalid requestBody according to OAS
+ - no requestBody provided at all
+end note
+
+
+group PUT /core-model-1-4:network-control-domain=cache/link={genericLinkId}
+ Collection --\\o Postman : {servers, genericLinkId}
+ Postman -> LINK : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- LINK : 400
+ note right Postman #Orange
+ check for 400
+ end note
+end
+
+group PUT /core-model-1-4:network-control-domain=cache/link={mfrLinkId}
+ Collection --\\o Postman : {servers, mfrLinkId}
+ Postman -> LINK : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- LINK : 400
+ note right Postman #Orange
+ check for 400
+ end note
+end
+
+group PUT /core-model-1-4:network-control-domain=cache/link={genericLinkId}/link-port={linkPortId}
+ Collection --\\o Postman : {servers, genericLinkId, linkPortId}
+ Postman -> LINKPORT : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- LINKPORT : 400
+ note right Postman #Orange
+ check for 400
+ end note
+end
+
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/mwdi+diagram.invalidOrMissingRequestBody.cacheEnrichement.png b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/mwdi+diagram.invalidOrMissingRequestBody.cacheEnrichement.png
new file mode 100644
index 00000000..0dbe9ea7
Binary files /dev/null and b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/mwdi+diagram.invalidOrMissingRequestBody.cacheEnrichement.png differ
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/mwdi+testcase.invalidOrMissingRequestBody.cacheEnrichment.json b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/mwdi+testcase.invalidOrMissingRequestBody.cacheEnrichment.json
new file mode 100644
index 00000000..987cc7ab
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/mwdi+testcase.invalidOrMissingRequestBody.cacheEnrichment.json
@@ -0,0 +1,2094 @@
+{
+ "info": {
+ "name": "mwdi+testcase.invalidOrMissingRequestBody.cacheEnrichment",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "UserInput",
+ "item": [
+ {
+ "name": "for loading user input",
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "exec": [
+ "console.clear();\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "logger.struc(\"===== mwdi+testcase.invalidOrMissingRequestBody.cacheEnrichment ==========================\");\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Loading Input Data from File\r",
+ "****************************************************************************************/\r",
+ "var inputFromFile;\r",
+ "try {\r",
+ " inputFromFile = data\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Input data could not be loaded.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Environmental Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.environment.clear();\r",
+ "\r",
+ " let mode;\r",
+ " mode = inputFromFile.mode;\r",
+ " // Mode to be applied while running this testcase collection \r",
+ " // \"analysis\" -> human does detailed analysis of response bodies etc.\r",
+ " // \"testing\" -> automated approval based on binary result\r",
+ " // \"debugging\" -> support for programming the testcase collection\r",
+ "\r",
+ " let logLevel;\r",
+ " switch(mode) {\r",
+ " case \"debugging\":\r",
+ " logLevel = \"debug\";\r",
+ " break;\r",
+ " case \"analysis\":\r",
+ " logLevel = \"log\";\r",
+ " break;\r",
+ " case \"testing\":\r",
+ " logLevel = \"error\";\r",
+ " break;\r",
+ " default:\r",
+ " logLevel = \"debug\";\r",
+ " };\r",
+ " // Level of detail of the logging; find more info in pre-request script on the collection's level\r",
+ "\r",
+ " let serverList = [];\r",
+ " serverList = inputFromFile.serverList;\r",
+ " // list of addresses of applications, controllers etc.\r",
+ " // serverName : key attribute for identifying the servers\r",
+ " // dummyUri : http address that shall be addressed by bare processing Requests\r",
+ " // server : part of the URI that is comprised from protocol, IP address and TCP port\r",
+ " // pathToControlConstruct : part of the URI that is identical for all Requests that are addressing into the device's data tree\r",
+ " // authorizationCode : authentication that has to be sent in case of BasicAuth protection (e.g. OpenDaylight NBI)\r",
+ " // operationKey : ApiKey that has to be sent in case of addressing a MW SDN application (e.g. MicroWaveDeviceInventory)\r",
+ " // userName : user header to be sent in case of addressing a MW SDN application\r",
+ " // originator : originator header to be sent in case of addressing a MW SDN application\r",
+ " // xCorrelator : x-correlator header to be sent in case of addressing a MW SDN application\r",
+ " // traceIndicator : trace-indicator header to be sent in case of addressing a MW SDN application\r",
+ " // customerJourney : customer-journey header to be sent in case of addressing a MW SDN application\r",
+ "\r",
+ " let collectionInputList = [];\r",
+ " collectionInputList = inputFromFile.collectionInputList;\r",
+ " // list of inputs to individual test case collections\r",
+ " // serverToBeApplied : server that shall be addressed in the respective request/test case\r",
+ " // mountName : mountName of the device that is to be validated\r",
+ " // uuid of the object that is to be validated\r",
+ " // localId of the object that is to be validated\r",
+ " // linkId : linkName of the link that is to be validated\r",
+ " // linkPort : id of the linkPort that is to be validated\r",
+ "\r",
+ " pm.environment.set(\"mode\", mode);\r",
+ " pm.environment.set(\"logLevel\", logLevel);\r",
+ " pm.environment.set(\"serverList\", serverList);\r",
+ " pm.environment.set(\"collectionInputList\", collectionInputList);\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Environment variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Collection Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.collectionVariables.clear()\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Collection variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Local Variables and Preparing the Request\r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " let uri;\r",
+ " let dummyServerInfo;\r",
+ " dummyServerInfo = ExtractServerInformation(inputFromFile.serverList, \"dummy\");\r",
+ " uri = dummyServerInfo.dummyUri;\r",
+ "\r",
+ " pm.variables.clear();\r",
+ "\r",
+ " pm.variables.set(\"uri\", uri);\r",
+ "\r",
+ " pm.request.headers.upsert({ key: \"Accept\", value: \"application/json\" });\r",
+ " pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" })\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Local variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Functions\r",
+ "****************************************************************************************/\r",
+ "function ExtractServerInformation(serverList, searchedServerName) {\r",
+ " try {\r",
+ " for(let i=0; i log -> info -> warn -> error -> struc -> none",
+ "// It creates \"logger\" global variable which can be used anywhere in nested collection scripts",
+ "",
+ "const logLevels = [\"debug\", \"log\", \"info\", \"warn\", \"error\", \"struc\", \"none\"];",
+ "",
+ "const shouldLog = (level) => {",
+ " return logLevels.indexOf(level) >= logLevels.indexOf(pm.environment.get(\"logLevel\"));",
+ "};",
+ "",
+ "logger = {",
+ " debug: (message, ...optionalParams) => {",
+ " shouldLog(\"debug\") && console.log(message, ...optionalParams);",
+ " },",
+ " log: (message, ...optionalParams) => {",
+ " shouldLog(\"log\") && console.log(message, ...optionalParams);",
+ " },",
+ " info: (message, ...optionalParams) => {",
+ " shouldLog(\"info\") && console.log(message, ...optionalParams);",
+ " },",
+ " warn: (message, ...optionalParams) => {",
+ " shouldLog(\"warn\") && console.log(message, ...optionalParams);",
+ " },",
+ " error: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.error(message, ...optionalParams);",
+ " },",
+ " struc: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.log(message, ...optionalParams);",
+ " },",
+ "};",
+ ""
+ ]
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/simulators/MicroWaveDeviceInventory+simu.invalidOrMissingRequestBody.cacheEnrichment.yaml b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/simulators/MicroWaveDeviceInventory+simu.invalidOrMissingRequestBody.cacheEnrichment.yaml
new file mode 100644
index 00000000..ad7791f9
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/CacheEnrichment/simulators/MicroWaveDeviceInventory+simu.invalidOrMissingRequestBody.cacheEnrichment.yaml
@@ -0,0 +1,1793 @@
+openapi: 3.0.0
+info:
+ title: MWDI_1.2.2+simulator.invalidOrMissingRequestBody.cacheEnrichment
+ version: 1.0.0
+
+paths:
+########################################################################################################################
+# Service Layer - Individual Part
+# MWDI_1.2.2+simulator.invalidOrMissingRequestBody.cacheEnrichement in static reference mode
+########################################################################################################################
+
+ /core-model-1-4:network-control-domain=cache/link=genericLink1:
+ parameters:
+ - $ref: '#/components/parameters/uuid'
+ put:
+ operationId: putLinkToCache
+ summary: 'Writes generic Link to cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ core-model-1-4:link:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK'
+ example:
+ core-model-1-4:link:
+ - uuid: 'genericLink1'
+ layer-protocol-name: 'layer protocol name for the link'
+ link-direction: 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ forwarding-domain:
+ - 'forwarding domain entry'
+ link-port:
+ - local-id: '1'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_INPUT'
+ logical-termination-point: 'mountnameA+ltpA'
+ - local-id: '2'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ logical-termination-point: 'mountnameB+ltpB'
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /core-model-1-4:network-control-domain=cache/link=mfrLink1:
+ parameters:
+ - $ref: '#/components/parameters/uuid'
+ put:
+ operationId: putLinkToCache
+ summary: 'Writes mfr Link to cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ core-model-1-4:link:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK'
+ example:
+ core-model-1-4:link:
+ - uuid: 'mfrLink1'
+ layer-protocol-name: 'core-model-1-4:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ end-point-list:
+ - control-construct: '513250009'
+ logical-termination-point: '513250009+LTP-MWPS-TTP-RADIO-2A'
+ layer-protocol: '513250009+LP-MWPS-TTP-RADIO-2A'
+ - control-construct: '513250008'
+ logical-termination-point: '513250008+LTP-MWPS-TTP-RADIO-2A'
+ layer-protocol: '513250008+LP-MWPS-TTP-RADIO-2A'
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /core-model-1-4:network-control-domain=cache/link=genericLink1/link-port=1:
+ parameters:
+ - $ref: '#/components/parameters/uuid'
+ - $ref: '#/components/parameters/localId'
+ put:
+ operationId: putLinkPortToCache
+ summary: 'Writes LinkPort to cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ core-model-1-4:link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ examples:
+ generic:
+ value:
+ core-model-1-4:link-port:
+ - local-id: '1'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_INPUT'
+ logical-termination-point: '513270001+2146435233'
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+########################################################################################################################
+# Common Components
+########################################################################################################################
+components:
+ parameters:
+ user:
+ name: user
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'User Name'
+ description: 'User identifier from the system starting the service call'
+ originator:
+ name: originator
+ in: header
+ required: true
+ schema:
+ type: string
+ minLength: 3
+ example: 'Resolver'
+ description: >
+ 'Identification for the system consuming the API, as defined in
+ [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]'
+ x-correlator:
+ name: x-correlator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ description: 'Empty string accepted from external applications.'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses'
+ trace-indicator:
+ name: trace-indicator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^([0-9]+)(\.([0-9]+))*$'
+ description: 'Empty string accepted from external applications.'
+ example: '1.3.1'
+ description: 'Sequence of request numbers along the flow'
+ customer-journey:
+ name: customer-journey
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'Unknown value'
+ description: 'Holds information supporting customer’s journey to which the execution applies'
+ mountName:
+ name: mountName
+ in: path
+ required: true
+ schema:
+ type: string
+ example: '222250001'
+ description: 'The mountName of the device that is addressed by the request'
+ uuid:
+ name: uuid
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within the device'
+ uuid1:
+ name: uuid1
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Another instance identifier that is unique within the device'
+ localId:
+ name: localId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within its list'
+ fields:
+ name: fields
+ in: query
+ required: false
+ schema:
+ type: string
+ example: 'node(node-id;netconf-node-topology:connection-status)'
+ description: 'Query parameter to filter ressources according to RFC8040 fields filter spec'
+ responses:
+ responseForErroredServiceRequests:
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ responseForErroredOamRequests:
+ description: 'Response in case of errored OaM requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ '429':
+ description: 'Response in case too many requests need to be executed in parallel or too many requests have been received within a time period. The maximum number of parallel requests is defined in an IntegerProfile with the service name as a prefix and MaxNumberOfParallelRequests as a suffix. Some time period to elapse for throttling incomming requests is defined in an IntegerProfile with the service name as a prefix and ThrottlingPeriod as a suffix'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 429
+ maximum: 429
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Too many requests'
+ '460':
+ description: 'Response in case the mountName provided in the request is not found in the list of connected devices'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 460
+ maximum: 460
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not connected. Requested device is currently not in connected state at the controller'
+ '461':
+ description: 'Response in case the (parent) topology object provided in the request (body or path) is not found in the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 461
+ maximum: 461
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not available. The topology (parent) object is currently not found in the cache.'
+ '470':
+ description: 'Response in case the resource specified in the request does not exist within the connected device'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 470
+ maximum: 470
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource not existing. Device informs about addressed resource unknown'
+ '471':
+ description: 'Response in case the (child) topology object specified in the request (body or path) does not exist within the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 471
+ maximum: 471
+ format: int32
+ message:
+ type: string
+ enum:
+ - '(Child) topology object not existing. Cache informs about addressed resource unknown.'
+ '502':
+ description: 'Response in case the server is acting as a gateway or proxy and received an invalid response from the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 502
+ maximum: 502
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway'
+ '530':
+ description: 'Response in case the referenced resource exists (e.g. device connected and resource exists in internal datatree), but response data is either not available, lost during transmission, incomplete or corrupted'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 530
+ maximum: 530
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Data invalid. Response data not available, incomplete or corrupted'
+ '531':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to authenticate at the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 531
+ maximum: 531
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Authentication at upstream server failed.'
+ '532':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to connect to the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 532
+ maximum: 532
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Upstream server not responding.'
+ '533':
+ description: 'Response in case the referenced resource for an connected device does not exist at the controller.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 533
+ maximum: 533
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource unknown. The resource for the connected device does not exist at the Controller.'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ life-cycle-state:
+ schema:
+ type: string
+ enum:
+ - 'EXPERIMENTAL'
+ - 'OPERATIONAL'
+ - 'DEPRECATED'
+ - 'OBSOLETE'
+ - 'UNKNOWN'
+ - 'NOT_YET_DEFINED'
+ example: 'EXPERIMENTAL'
+ schemas:
+ errorDescription:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
+ genericRepresentation:
+ type: object
+ required:
+ - response-value-list
+ - consequent-action-list
+ properties:
+ response-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ - value
+ - datatype
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Field name
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]'
+ value:
+ type: string
+ description: >
+ 'Field value
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]'
+ datatype:
+ type: string
+ description: >
+ 'Field datatype
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]'
+ consequent-action-list:
+ type: array
+ items:
+ type: object
+ required:
+ - label
+ - request
+ - display-in-new-browser-window
+ properties:
+ label:
+ type: string
+ description: >
+ 'Label that shall be presented on the button
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]'
+ request:
+ type: string
+ description: >
+ 'Request that shall be called, when button gets pressed
+ from
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}]
+ ://
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address}
+ or
+ {/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}]
+ :
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}]
+ [{/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]'
+ input-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Name of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]'
+ unit:
+ type: string
+ description: >
+ 'Unit of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]'
+ display-in-new-browser-window:
+ type: boolean
+ description: >
+ 'True in case Request shall be represented in a new browser window
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]'
+ logicalTerminationPoint:
+ type: object
+ required:
+ - uuid
+ - ltp-direction
+ - client-ltp
+ - server-ltp
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-direction:
+ type: string
+ client-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ server-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ layer-protocol:
+ type: array
+ minItems: 1
+ maxItems: 1
+ items:
+ oneOf:
+ - description: 'operation server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-server-interface-1-0:operation-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-server-interface-1-0:operation-server-interface-pac:
+ type: object
+ required:
+ - operation-server-interface-capability
+ - operation-server-interface-configuration
+ properties:
+ operation-server-interface-capability:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-server-interface-configuration:
+ type: object
+ required:
+ - life-cycle-state
+ properties:
+ life-cycle-state:
+ type: string
+ - description: 'http server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-server-interface-1-0:http-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-server-interface-1-0:http-server-interface-pac:
+ type: object
+ required:
+ - http-server-interface-capability
+ properties:
+ http-server-interface-capability:
+ type: object
+ required:
+ - application-name
+ - release-number
+ - data-update-period
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ data-update-period:
+ type: string
+ - description: 'tcp server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-server-interface-1-0:tcp-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-server-interface-1-0:tcp-server-interface-pac:
+ type: object
+ required:
+ - tcp-server-interface-configuration
+ properties:
+ tcp-server-interface-configuration:
+ type: object
+ required:
+ - description
+ - local-protocol
+ - local-address
+ - local-port
+ properties:
+ description:
+ type: string
+ local-protocol:
+ type: string
+ local-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ local-port:
+ type: integer
+ - description: 'operation client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-client-interface-1-0:operation-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-client-interface-1-0:operation-client-interface-pac:
+ type: object
+ required:
+ - operation-client-interface-configuration
+ - operation-client-interface-status
+ properties:
+ operation-client-interface-configuration:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'elasticsearch client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac:
+ type: object
+ required:
+ - elasticsearch-client-interface-configuration
+ - elasticsearch-client-interface-status
+ properties:
+ elasticsearch-client-interface-configuration:
+ type: object
+ required:
+ - index-alias
+ properties:
+ index-alias:
+ type: string
+ elasticsearch-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'http client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-client-interface-1-0:http-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-client-interface-1-0:http-client-interface-pac:
+ type: object
+ required:
+ - http-client-interface-configuration
+ properties:
+ http-client-interface-configuration:
+ type: object
+ required:
+ - application-name
+ - release-number
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ - description: 'tcp client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-client-interface-1-0:tcp-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-client-interface-1-0:tcp-client-interface-pac:
+ type: object
+ required:
+ - tcp-client-interface-configuration
+ properties:
+ tcp-client-interface-configuration:
+ type: object
+ required:
+ - remote-protocol
+ - remote-address
+ - remote-port
+ properties:
+ remote-protocol:
+ type: string
+ remote-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ remote-port:
+ type: integer
+ forwardingDomain:
+ type: object
+ required:
+ - uuid
+ - forwarding-construct
+ properties:
+ uuid:
+ type: string
+ forwarding-construct:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - name
+ - fc-port
+ properties:
+ uuid:
+ type: string
+ name:
+ type: array
+ items:
+ type: object
+ required:
+ - value-name
+ - value
+ properties:
+ value-name:
+ type: string
+ value:
+ type: string
+ fc-port:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ port-direction:
+ type: string
+ logical-termination-point:
+ type: string
+
+ CONTROL_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ - alarms-1-0:alarm-pac
+ - equipment
+ - firmware-1-0:firmware-collection
+ - profile-collection
+ - logical-termination-point
+ properties:
+ uuid:
+ type: string
+ alarms-1-0:alarm-pac:
+ $ref: '#/components/schemas/ALARM_PAC'
+ equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EQUIPMENT'
+ firmware-1-0:firmware-collection:
+ $ref: '#/components/schemas/FIRMWARE_COLLECTION'
+ profile-collection:
+ $ref: '#/components/schemas/PROFILE_COLLECTION'
+ forwarding-domain:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_DOMAIN'
+ logical-termination-point:
+ type: array
+ items:
+ $ref: '#/components/schemas/LOGICAL_TERMINATION_POINT'
+
+ ALARM_PAC:
+ type: object
+ required:
+ - alarm-capability
+ - alarm-configuration
+ - current-alarms
+ - alarm-event-records
+ properties:
+ alarm-capability:
+ $ref: '#/components/schemas/ALARM_CAPABILITY'
+ alarm-configuration:
+ $ref: '#/components/schemas/ALARM_CONFIGURATION'
+ current-alarms:
+ $ref: '#/components/schemas/CURRENT_ALARMS'
+ alarm-event-records:
+ $ref: '#/components/schemas/ALARM_EVENT_RECORDS'
+ ALARM_CAPABILITY:
+ type: object
+ ALARM_CONFIGURATION:
+ type: object
+ CURRENT_ALARMS:
+ type: object
+ ALARM_EVENT_RECORDS:
+ type: object
+
+ EQUIPMENT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ connector:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONNECTOR'
+ contained-holder:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONTAINED_HOLDER'
+ expected-equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EXPECTED_EQUIPMENT'
+ actual-equipment:
+ type: object
+ CONNECTOR:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ CONTAINED_HOLDER:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ EXPECTED_EQUIPMENT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ ACTUAL_EQUIPMENT:
+ type: object
+
+ FIRMWARE_COLLECTION:
+ type: object
+ required:
+ - firmware-component-list
+ properties:
+ firmware-component-list:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_LIST'
+ FIRMWARE_COMPONENT_LIST:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - firmware-component-pac
+ properties:
+ local-id:
+ type: string
+ firmware-component-pac:
+ type: object
+ required:
+ - firmware-component-capability
+ - firmware-component-status
+ properties:
+ firmware-component-capability:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_CAPABILITY'
+ firmware-component-status:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_STATUS'
+ FIRMWARE_COMPONENT_CAPABILITY:
+ type: object
+ FIRMWARE_COMPONENT_STATUS:
+ type: object
+
+ PROFILE_COLLECTION:
+ type: object
+ required:
+ - profile
+ properties:
+ profile:
+ type: array
+ items:
+ $ref: '#/components/schemas/PROFILE'
+ PROFILE:
+ oneOf:
+ - description: 'co-channel-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - co-channel-profile-1-0:co-channel-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'co-channel-profile-1-0:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE'
+ co-channel-profile-1-0:co-channel-profile-pac:
+ type: object
+ required:
+ - co-channel-profile-capability
+ - co-channel-profile-configuration
+ properties:
+ co-channel-profile-capability:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CAPABILITY'
+ co-channel-profile-configuration:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CONFIGURATION'
+ - description: 'policing-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - policing-profile-1-0:policing-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'policing-profile-1-0:PROFILE_NAME_TYPE_POLICING_PROFILE'
+ policing-profile-1-0:policing-profile-pac:
+ type: object
+ required:
+ - policing-profile-capability
+ - policing-profile-configuration
+ properties:
+ policing-profile-capability:
+ $ref: '#/components/schemas/POLICING_PROFILE_CAPABILITY'
+ policing-profile-configuration:
+ $ref: '#/components/schemas/POLICING_PROFILE_CONFIGURATION'
+ - description: 'qos-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - qos-profile-1-0:qos-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'qos-profile-1-0:PROFILE_NAME_TYPE_QOS_PROFILE'
+ qos-profile-1-0:qos-profile-pac:
+ type: object
+ required:
+ - qos-profile-capability
+ - qos-profile-configuration
+ properties:
+ qos-profile-capability:
+ $ref: '#/components/schemas/QOS_PROFILE_CAPABILITY'
+ qos-profile-configuration:
+ $ref: '#/components/schemas/QOS_PROFILE_CONFIGURATION'
+ - description: 'scheduler-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - scheduler-profile-1-0:scheduler-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'scheduler-profile-1-0:PROFILE_NAME_TYPE_SCHEDULER_PROFILE'
+ scheduler-profile-1-0:scheduler-profile-pac:
+ type: object
+ required:
+ - scheduler-profile-capability
+ - scheduler-profile-configuration
+ properties:
+ scheduler-profile-capability:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CAPABILITY'
+ scheduler-profile-configuration:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CONFIGURATION'
+ - description: 'wred-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-profile-1-0:wred-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-profile-1-0:PROFILE_NAME_TYPE_WRED_PROFILE'
+ wred-profile-1-0:wred-profile-pac:
+ type: object
+ required:
+ - wred-profile-capability
+ - wred-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_PROFILE_CONFIGURATION'
+ - description: 'wred-template-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-template-profile-1-0:wred-template-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-template-profile-1-0:PROFILE_NAME_TYPE_WRED_TEMPLATE_PROFILE'
+ wred-template-profile-1-0:wred-template-profile-pac:
+ type: object
+ required:
+ - wred-template-profile-capability
+ - wred-template-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CONFIGURATION'
+ CO_CHANNEL_PROFILE_CAPABILITY:
+ type: object
+ CO_CHANNEL_PROFILE_CONFIGURATION:
+ type: object
+ POLICING_PROFILE_CAPABILITY:
+ type: object
+ POLICING_PROFILE_CONFIGURATION:
+ type: object
+ QOS_PROFILE_CAPABILITY:
+ type: object
+ QOS_PROFILE_CONFIGURATION:
+ type: object
+ SCHEDULER_PROFILE_CAPABILITY:
+ type: object
+ SCHEDULER_PROFILE_CONFIGURATION:
+ type: object
+ WRED_PROFILE_CAPABILITY:
+ type: object
+ WRED_PROFILE_CONFIGURATION:
+ type: object
+ WRED_TEMPLATE_PROFILE_CAPABILITY:
+ type: object
+ WRED_TEMPLATE_PROFILE_CONFIGURATION:
+ type: object
+
+ LOGICAL_TERMINATION_POINT:
+ type: object
+ required:
+ - uuid
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-augment-1-0:ltp-augment-pac:
+ $ref: '#/components/schemas/LTP_AUGMENT_PAC'
+ embedded-clock:
+ type: array
+ items:
+ $ref: '#/components/schemas/EMBEDDED_CLOCK'
+ layer-protocol:
+ type: array
+ items:
+ $ref: '#/components/schemas/LAYER_PROTOCOL'
+ LTP_AUGMENT_PAC:
+ type: object
+ EMBEDDED_CLOCK:
+ type: object
+ LAYER_PROTOCOL:
+ oneOf:
+ - description: 'air-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - air-interface-2-0:air-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ air-interface-2-0:air-interface-pac:
+ $ref: '#/components/schemas/AIR_INTERFACE_PAC'
+ - description: 'ethernet-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ethernet-container-2-0:ethernet-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER'
+ ethernet-container-2-0:ethernet-container-pac:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_PAC'
+ - description: 'hybrid-mw-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - hybrid-mw-structure-2-0:hybrid-mw-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER'
+ hybrid-mw-structure-2-0:hybrid-mw-structure-pac:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_PAC'
+ - description: 'mac-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - mac-interface-1-0:mac-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER'
+ mac-interface-1-0:mac-interface-pac:
+ $ref: '#/components/schemas/MAC_INTERFACE_PAC'
+ - description: 'pure-ethernet-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - pure-ethernet-structure-2-0:pure-ethernet-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER'
+ pure-ethernet-structure-2-0:pure-ethernet-structure-pac:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_PAC'
+ - description: 'vlan-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - vlan-interface-1-0:vlan-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER'
+ vlan-interface-1-0:vlan-interface-pac:
+ $ref: '#/components/schemas/VLAN_INTERFACE_PAC'
+ - description: 'wire-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - wire-interface-2-0:wire-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER'
+ wire-interface-2-0:wire-interface-pac:
+ $ref: '#/components/schemas/WIRE_INTERFACE_PAC'
+ - description: 'ip-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ip-interface-1-0:ip-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER'
+ ip-interface-1-0:ip-interface-pac:
+ $ref: '#/components/schemas/IP_INTERFACE_PAC'
+ - description: 'tdm-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tdm-container-2-0:tdm-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER'
+ tdm-container-2-0:tdm-container-pac:
+ $ref: '#/components/schemas/TDM_CONTAINER_PAC'
+ FORWARDING_DOMAIN:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT'
+ FORWARDING_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT_PORT'
+ FORWARDING_CONSTRUCT_PORT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ LINK:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+ LINK_PORT:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+
+ AIR_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-historical-performances
+ additionalProperties: false
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-current-performance
+ - air-interface-historical-performances
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-current-performance:
+ $ref: '#/components/schemas/AIR_INTERFACE_CURRENT_PERFORMANCE'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ AIR_INTERFACE_CAPABILITY:
+ type: object
+ AIR_INTERFACE_CONFIGURATION:
+ type: object
+ AIR_INTERFACE_STATUS:
+ type: object
+ AIR_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ AIR_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ ETHERNET_CONTAINER_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-historical-performances
+ additionalProperties: false
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-current-performance
+ - ethernet-container-historical-performances
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-current-performance:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CURRENT_PERFORMANCE'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ ETHERNET_CONTAINER_CAPABILITY:
+ type: object
+ ETHERNET_CONTAINER_CONFIGURATION:
+ type: object
+ ETHERNET_CONTAINER_STATUS:
+ type: object
+ ETHERNET_CONTAINER_CURRENT_PERFORMANCE:
+ type: object
+ ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES:
+ type: object
+
+ HYBRID_MW_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-historical-performances
+ additionalProperties: false
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-current-performance
+ - hybrid-mw-structure-historical-performances
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-current-performance:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ HYBRID_MW_STRUCTURE_CAPABILITY:
+ type: object
+ HYBRID_MW_STRUCTURE_CONFIGURATION:
+ type: object
+ HYBRID_MW_STRUCTURE_STATUS:
+ type: object
+ HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ MAC_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ - description: 'live'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ MAC_INTERFACE_CAPABILITY:
+ type: object
+ MAC_INTERFACE_CONFIGURATION:
+ type: object
+ MAC_INTERFACE_STATUS:
+ type: object
+
+ PURE_ETHERNET_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-historical-performances
+ additionalProperties: false
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-current-performance
+ - pure-ethernet-structure-historical-performances
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-current-performance:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ PURE_ETHERNET_STRUCTURE_CAPABILITY:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CONFIGURATION:
+ type: object
+ PURE_ETHERNET_STRUCTURE_STATUS:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ VLAN_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ additionalProperties: false
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ - description: 'live'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ VLAN_INTERFACE_CAPABILITY:
+ type: object
+ VLAN_INTERFACE_CONFIGURATION:
+ type: object
+
+ WIRE_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-historical-performances
+ additionalProperties: false
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-current-performance
+ - wire-interface-historical-performances
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-current-performance:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CURRENT_PERFORMANCE'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ WIRE_INTERFACE_CAPABILITY:
+ type: object
+ WIRE_INTERFACE_CONFIGURATION:
+ type: object
+ WIRE_INTERFACE_STATUS:
+ type: object
+ WIRE_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ WIRE_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+ IP_INTERFACE_PAC:
+ type: object
+ required:
+ - ip-interface-capability
+ - ip-interface-configuration
+ - ip-interface-status
+ properties:
+ ip-interface-capability:
+ $ref: '#/components/schemas/IP_INTERFACE_CAPABILITY'
+ ip-interface-configuration:
+ $ref: '#/components/schemas/IP_INTERFACE_CONFIGURATION'
+ ip-interface-status:
+ $ref: '#/components/schemas/IP_INTERFACE_STATUS'
+ IP_INTERFACE_CAPABILITY:
+ type: object
+ IP_INTERFACE_CONFIGURATION:
+ type: object
+ IP_INTERFACE_STATUS:
+ type: object
+
+ TDM_CONTAINER_PAC:
+ type: object
+ required:
+ - tdm-container-capability
+ - tdm-container-configuration
+ - tdm-container-status
+ properties:
+ tdm-container-capability:
+ $ref: '#/components/schemas/TDM_CONTAINER_CAPABILITY'
+ tdm-container-configuration:
+ $ref: '#/components/schemas/TDM_CONTAINER_CONFIGURATION'
+ tdm-container-status:
+ $ref: '#/components/schemas/TDM_CONTAINER_STATUS'
+ TDM_CONTAINER_CAPABILITY:
+ type: object
+ TDM_CONTAINER_CONFIGURATION:
+ type: object
+ TDM_CONTAINER_STATUS:
+ type: object
+
+ securitySchemes:
+ apiKeyAuth:
+ type: apiKey
+ in: header
+ name: operation-key
+ basicAuth:
+ type: http
+ scheme: basic
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/README.md b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/README.md
new file mode 100644
index 00000000..f36d687d
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/README.md
@@ -0,0 +1,23 @@
+# Functional Testing of Invalid or Missing RequestBody Handling of the Providers of Data
+
+
+
+Not all of the tested services require a requestBody.
+The tested services can be categorized into three groups:
+- (1) services, where the requestBody is mandatory and must be provided according to the schema from the OAS.
+ - for these services two test will be performed: a) an invalid requestBody is provided and b) no requestBody is provided
+ - in both cases a 400 shall be returned
+- (2) services, where the requestBody is optional: if provided, it must match the OAS
+ - these services will be tested with an invalid requestBody
+ - a 400 shall be returned
+- (3) services, where no requestBody is specified.
+ - these services will be tested with a dummy requestBody (as none is specified, any requestBody will do)
+ - a 200 shall be returned
+
+---
+The respective services per category are:
+|
requestBody category |
Services |
Tests, expected results |
+|---|---|---|
+|
(1) mandatory |/v1/provide-list-of-device-interfaces
/v1/provide-list-of-actual-device-equipment
/v1/provide-list-of-parallel-links
/v1/provide-device-status-metadata
|
Invalid requestBody, no requestBody
400 |
+|
(2) optional |
/v1/provide-list-of-links
/v1/provide-data-of-all-links |
Invalid requestBody,
400 |
+|
(3) none |
/v1/provide-list-of-connected-devices
/v1/provide-list-of-link-ports
/v1/provide-data-of-all-link-ports |
Dummy requestBody
200 |
\ No newline at end of file
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/mwdi+data.invalidOrMissingRequestBody.dataprovider.json b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/mwdi+data.invalidOrMissingRequestBody.dataprovider.json
new file mode 100644
index 00000000..5b9cb76f
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/mwdi+data.invalidOrMissingRequestBody.dataprovider.json
@@ -0,0 +1,52 @@
+[
+ {
+ "mode": "debug",
+ "serverList": [
+ {
+ "serverName": "dummy",
+ "dummyUri": "ping.openBackhaul.com"
+ },
+ {
+ "serverName": "mwdi",
+ "server": "http://IP_ADRESS:PORT",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "YOUR_BASIC_AUTH_CODE",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "mwdi in mwdi+simulator.invalidOrMissingRequestBody.dataprovider",
+ "server": "http://localhost:3011",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ }
+ ],
+ "collectionInputList": [
+ {
+ "collectionName": "invalidOrMissingRequestBody.dataprovider",
+ "serverToBeApplied": "mwdi",
+ "mountName": "513250004",
+ "linkId": "101550001",
+ "kindOfReference": "dynamic"
+ },
+ {
+ "collectionName": "invalidOrMissingRequestBody.dataprovider_simulator",
+ "serverToBeApplied": "mwdi in mwdi+simulator.invalidOrMissingRequestBody.dataprovider",
+ "mountName": "305250001",
+ "linkId": "101550001",
+ "kindOfReference": "static",
+ "suffixUrlEncodingIsRequired": true
+ }
+ ]
+ }
+]
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/mwdi+diagram.invalidOrMissingRequestBody.dataprovider.plantuml b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/mwdi+diagram.invalidOrMissingRequestBody.dataprovider.plantuml
new file mode 100644
index 00000000..dbad8851
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/mwdi+diagram.invalidOrMissingRequestBody.dataprovider.plantuml
@@ -0,0 +1,131 @@
+@startuml mwdi+diagram.invalidOrMissingRequestBody.dataprovider
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.invalidOrMissingRequestBody.dataprovider
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+'requestBody required
+participant "/v1/provide-list-of-device-interfaces" as PLODI
+participant "/v1/provide-list-of-actual-device-equipment" as PLOADE
+participant "/v1/provide-list-of-parallel-links" as PLOPL
+participant "/v1/provide-device-status-metadata" as PDSM
+
+'optional requestBody
+participant "/v1/provide-list-of-links" as PLOL
+participant "/v1/provide-data-of-all-links" as PDOAL
+
+'no requestBody
+participant "/v1/provide-list-of-connected-devices" as PLOCD
+participant "/v1/provide-list-of-link-ports" as PLOLP
+participant "/v1/provide-data-of-all-link-ports" as PDOALP
+
+
+group Preparation
+ Data --\\o Postman : {servers}
+ activate Postman
+ Postman --\\o Collection : {servers}
+end
+
+'-------------------------------------------------------------
+== RequestBody required ==
+ note over Postman, PLODI
+ For each service with required requestBody there are two testcases to be executed.
+ Both tests differ in the provided requestBody:
+ - an invalid requestBody according to OAS
+ - no requestBody provided at all
+ end note
+
+ group /v1/provide-list-of-device-interfaces
+ Collection --\\o Postman : {servers}
+ Postman -> PLODI : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- PLODI : 400
+ note right Postman #Orange
+ check for 400
+ end note
+ end
+
+ group /v1/provide-list-of-actual-device-equipment
+ Collection --\\o Postman : {servers}
+ Postman -> PLOADE : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- PLOADE : 400
+ note right Postman #Orange
+ check for 400
+ end note
+ end
+
+ group /v1/provide-list-of-parallel-links
+ Collection --\\o Postman : {servers}
+ Postman -> PLOPL : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- PLOPL : 400
+ note right Postman #Orange
+ check for 400
+ end note
+ end
+
+ group /v1/provide-device-status-metadata
+ Collection --\\o Postman : {servers}
+ Postman -> PDSM : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- PDSM : (400
+ note right Postman #Orange
+ check for 400
+ end note
+ end
+
+'-------------------------------------------------------------
+== Optional requestBody ==
+ group /v1/provide-list-of-links
+ Collection --\\o Postman : {servers}
+ Postman -> PLOL : {invalidRequestBody}
+ Postman <-- PLOL : 400
+ note right Postman #Orange
+ check for 400
+ end note
+ end
+
+ group /v1/provide-data-of-all-links
+ Collection --\\o Postman : {servers}
+ Postman -> PDOAL : {invalidRequestBody}
+ Postman <-- PDOAL : 400
+ note right Postman #Orange
+ check for 400
+ end note
+ end
+
+
+'-------------------------------------------------------------
+== No requestBody ==
+ group /v1/provide-list-of-connected-devices
+ Collection --\\o Postman : {servers}
+ Postman -> PLOCD : {dummyRequestBody}
+ Postman <-- PLOCD : 200
+ note right Postman #Orange
+ check for 200
+ end note
+ end
+
+ group /v1/provide-list-of-link-ports
+ Collection --\\o Postman : {servers}
+ Postman -> PLOLP : {dummyRequestBody}
+ Postman <-- PLOLP : 200
+ note right Postman #Orange
+ check for 200
+ end note
+ end
+
+ group /v1/provide-data-of-all-link-ports
+ Collection --\\o Postman : {servers}
+ Postman -> PDOALP : {dummyRequestBody}
+ Postman <-- PDOALP : 200
+ note right Postman #Orange
+ check for 200
+ end note
+ end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/mwdi+diagram.invalidOrMissingRequestBody.dataprovider.png b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/mwdi+diagram.invalidOrMissingRequestBody.dataprovider.png
new file mode 100644
index 00000000..64d7d4f6
Binary files /dev/null and b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/mwdi+diagram.invalidOrMissingRequestBody.dataprovider.png differ
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/mwdi+testcase.invalidOrMissingRequestBody.dataprovider.json b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/mwdi+testcase.invalidOrMissingRequestBody.dataprovider.json
new file mode 100644
index 00000000..ffef7faa
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/mwdi+testcase.invalidOrMissingRequestBody.dataprovider.json
@@ -0,0 +1,3605 @@
+{
+ "info": {
+ "name": "mwdi+testcase.invalidOrMissingRequestBody.dataprovider",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "UserInput",
+ "item": [
+ {
+ "name": "for loading user input",
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "exec": [
+ "console.clear();\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "logger.struc(\"===== mwdi+testcase.invalidOrMissingRequestBody.dataprovider ==========================\");\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Loading Input Data from File\r",
+ "****************************************************************************************/\r",
+ "var inputFromFile;\r",
+ "try {\r",
+ " inputFromFile = data\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Input data could not be loaded.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Environmental Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.environment.clear();\r",
+ "\r",
+ " let mode;\r",
+ " mode = inputFromFile.mode;\r",
+ " // Mode to be applied while running this testcase collection \r",
+ " // \"analysis\" -> human does detailed analysis of response bodies etc.\r",
+ " // \"testing\" -> automated approval based on binary result\r",
+ " // \"debugging\" -> support for programming the testcase collection\r",
+ "\r",
+ " let logLevel;\r",
+ " switch(mode) {\r",
+ " case \"debugging\":\r",
+ " logLevel = \"debug\";\r",
+ " break;\r",
+ " case \"analysis\":\r",
+ " logLevel = \"log\";\r",
+ " break;\r",
+ " case \"testing\":\r",
+ " logLevel = \"error\";\r",
+ " break;\r",
+ " default:\r",
+ " logLevel = \"debug\";\r",
+ " };\r",
+ " // Level of detail of the logging; find more info in pre-request script on the collection's level\r",
+ "\r",
+ " let serverList = [];\r",
+ " serverList = inputFromFile.serverList;\r",
+ " // list of addresses of applications, controllers etc.\r",
+ " // serverName : key attribute for identifying the servers\r",
+ " // dummyUri : http address that shall be addressed by bare processing Requests\r",
+ " // server : part of the URI that is comprised from protocol, IP address and TCP port\r",
+ " // pathToControlConstruct : part of the URI that is identical for all Requests that are addressing into the device's data tree\r",
+ " // authorizationCode : authentication that has to be sent in case of BasicAuth protection (e.g. OpenDaylight NBI)\r",
+ " // operationKey : ApiKey that has to be sent in case of addressing a MW SDN application (e.g. MicroWaveDeviceInventory)\r",
+ " // userName : user header to be sent in case of addressing a MW SDN application\r",
+ " // originator : originator header to be sent in case of addressing a MW SDN application\r",
+ " // xCorrelator : x-correlator header to be sent in case of addressing a MW SDN application\r",
+ " // traceIndicator : trace-indicator header to be sent in case of addressing a MW SDN application\r",
+ " // customerJourney : customer-journey header to be sent in case of addressing a MW SDN application\r",
+ "\r",
+ " let collectionInputList = [];\r",
+ " collectionInputList = inputFromFile.collectionInputList;\r",
+ " // list of inputs to individual test case collections\r",
+ " // serverToBeApplied : server that shall be addressed in the respective request/test case\r",
+ " // mountName : mountName of the device that is to be validated\r",
+ " // uuid of the object that is to be validated\r",
+ " // localId of the object that is to be validated\r",
+ " // linkId : linkName of the link that is to be validated\r",
+ " // linkPort : id of the linkPort that is to be validated\r",
+ "\r",
+ " pm.environment.set(\"mode\", mode);\r",
+ " pm.environment.set(\"logLevel\", logLevel);\r",
+ " pm.environment.set(\"serverList\", serverList);\r",
+ " pm.environment.set(\"collectionInputList\", collectionInputList);\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Environment variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Collection Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.collectionVariables.clear()\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Collection variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Local Variables and Preparing the Request\r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " let uri;\r",
+ " let dummyServerInfo;\r",
+ " dummyServerInfo = ExtractServerInformation(inputFromFile.serverList, \"dummy\");\r",
+ " uri = dummyServerInfo.dummyUri;\r",
+ "\r",
+ " pm.variables.clear();\r",
+ "\r",
+ " pm.variables.set(\"uri\", uri);\r",
+ "\r",
+ " pm.request.headers.upsert({ key: \"Accept\", value: \"application/json\" });\r",
+ " pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" })\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Local variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Functions\r",
+ "****************************************************************************************/\r",
+ "function ExtractServerInformation(serverList, searchedServerName) {\r",
+ " try {\r",
+ " for(let i=0; i log -> info -> warn -> error -> struc -> none",
+ "// It creates \"logger\" global variable which can be used anywhere in nested collection scripts",
+ "",
+ "const logLevels = [\"debug\", \"log\", \"info\", \"warn\", \"error\", \"struc\", \"none\"];",
+ "",
+ "const shouldLog = (level) => {",
+ " return logLevels.indexOf(level) >= logLevels.indexOf(pm.environment.get(\"logLevel\"));",
+ "};",
+ "",
+ "logger = {",
+ " debug: (message, ...optionalParams) => {",
+ " shouldLog(\"debug\") && console.log(message, ...optionalParams);",
+ " },",
+ " log: (message, ...optionalParams) => {",
+ " shouldLog(\"log\") && console.log(message, ...optionalParams);",
+ " },",
+ " info: (message, ...optionalParams) => {",
+ " shouldLog(\"info\") && console.log(message, ...optionalParams);",
+ " },",
+ " warn: (message, ...optionalParams) => {",
+ " shouldLog(\"warn\") && console.log(message, ...optionalParams);",
+ " },",
+ " error: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.error(message, ...optionalParams);",
+ " },",
+ " struc: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.log(message, ...optionalParams);",
+ " },",
+ "};",
+ ""
+ ]
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/simulators/MicroWaveDeviceInventory+simu.invalidOrMissingRequestBody.dataprovier.yaml b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/simulators/MicroWaveDeviceInventory+simu.invalidOrMissingRequestBody.dataprovier.yaml
new file mode 100644
index 00000000..7e651097
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Dataprovider/simulators/MicroWaveDeviceInventory+simu.invalidOrMissingRequestBody.dataprovier.yaml
@@ -0,0 +1,1974 @@
+openapi: 3.0.0
+info:
+ title: MWDI_1.2.2+simulator.invalidOrMissingRequestBody.dataprovider
+ version: 1.0.0
+
+paths:
+########################################################################################################################
+# Service Layer - Individual Part
+# MWDI_1.2.2+simulator.invalidOrMissingRequestBody.dataprovider in static reference mode
+########################################################################################################################
+
+ # --- category 1: mandatory requestBody ----------------------------------------------------
+ /v1/provide-list-of-device-interfaces:
+ post:
+ operationId: provideListOfDeviceInterfaces
+ summary: 'Provides list of LTP UUIDs at a device'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - mount-name
+ properties:
+ mount-name:
+ type: string
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/provide-list-of-actual-device-equipment:
+ post:
+ operationId: provideListOfActualDeviceEquipment
+ summary: 'Provides list of actual equipment UUIDs inside a device'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - mount-name
+ properties:
+ mount-name:
+ type: string
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/provide-list-of-parallel-links:
+ post:
+ operationId: provideListOfParallelLinks
+ summary: 'Provides list of Links between the same ControlConstructs'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - link-id
+ properties:
+ link-id:
+ type: string
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/provide-device-status-metadata:
+ post:
+ operationId: provideDeviceStatusMetadata
+ summary: 'Provides metadata status table of devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ mount-name-list:
+ type: array
+ items:
+ type: string
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+
+ # --- category 2: optional requestBody -----------------------------------------------------
+ /v1/provide-list-of-links:
+ post:
+ operationId: provideListOfLinks
+ summary: 'Provides list of links in cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - link-type
+ properties:
+ link-type:
+ type: string
+ enum:
+ - 'generic'
+ - 'minimumForRest'
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/provide-data-of-all-links:
+ post:
+ operationId: provideDataOfLinks
+ summary: 'Provides data of (filtered) links in cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - link-type
+ properties:
+ link-type:
+ type: string
+ enum:
+ - 'generic'
+ - 'minimumForRest'
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+
+ # --- category 3: no requestBody -----------------------------------------------------------
+ /v1/provide-list-of-connected-devices:
+ post:
+ operationId: provideListOfConnectedDevices
+ summary: 'Provides list of devices that are connected to the controller'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ responses:
+ '200':
+ description: 'List of connected devices provided'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - mount-name-list
+ properties:
+ mount-name-list:
+ type: array
+ items:
+ type: string
+ example:
+ mount-name-list:
+ - '305251234'
+ - '105258888'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/provide-list-of-link-ports:
+ post:
+ operationId: provideListOfLinkPorts
+ summary: 'Provides list of link ports in cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ responses:
+ '200':
+ description: 'List of link ports in cache'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - link-port-list
+ properties:
+ link-port-list:
+ type: array
+ items:
+ type: object
+ properties:
+ link-uuid:
+ type: string
+ link-ports:
+ type: array
+ items:
+ type: string
+ example:
+ link-port-list:
+ - link-uuid: link1
+ link-ports:
+ - 'localId1'
+ - 'localId2'
+ - link-uuid: link2
+ link-ports:
+ - 'localId1'
+ - 'localId3'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/provide-data-of-all-link-ports:
+ post:
+ operationId: provideDataOfLinkPorts
+ summary: 'Provides data of linkports in cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ responses:
+ '200':
+ description: 'Data of linkports in cache'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - core-model-1-4:link-ports
+ properties:
+ core-model-1-4:link-ports:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - link-port
+ properties:
+ uuid:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ example:
+ core-model-1-4:link-ports:
+ - uuid: 'genericLink1'
+ link-port:
+ - local-id: '1'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_INPUT'
+ logical-termination-point: 'mountnameA+ltpA'
+ - local-id: '2'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ logical-termination-point: 'mountnameB+ltpB'
+ - uuid: 'genericLink2'
+ link-port:
+ - local-id: '1'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_INPUT'
+ logical-termination-point: 'ltpX'
+ - local-id: '2'
+ link-port-direction: 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ logical-termination-point: 'ltpY'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+
+########################################################################################################################
+# Common Components
+########################################################################################################################
+components:
+ parameters:
+ user:
+ name: user
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'User Name'
+ description: 'User identifier from the system starting the service call'
+ originator:
+ name: originator
+ in: header
+ required: true
+ schema:
+ type: string
+ minLength: 3
+ example: 'Resolver'
+ description: >
+ 'Identification for the system consuming the API, as defined in
+ [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]'
+ x-correlator:
+ name: x-correlator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ description: 'Empty string accepted from external applications.'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses'
+ trace-indicator:
+ name: trace-indicator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^([0-9]+)(\.([0-9]+))*$'
+ description: 'Empty string accepted from external applications.'
+ example: '1.3.1'
+ description: 'Sequence of request numbers along the flow'
+ customer-journey:
+ name: customer-journey
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'Unknown value'
+ description: 'Holds information supporting customer’s journey to which the execution applies'
+ mountName:
+ name: mountName
+ in: path
+ required: true
+ schema:
+ type: string
+ example: '222250001'
+ description: 'The mountName of the device that is addressed by the request'
+ uuid:
+ name: uuid
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within the device'
+ uuid1:
+ name: uuid1
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Another instance identifier that is unique within the device'
+ localId:
+ name: localId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within its list'
+ fields:
+ name: fields
+ in: query
+ required: false
+ schema:
+ type: string
+ example: 'node(node-id;netconf-node-topology:connection-status)'
+ description: 'Query parameter to filter ressources according to RFC8040 fields filter spec'
+ responses:
+ responseForErroredServiceRequests:
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ responseForErroredOamRequests:
+ description: 'Response in case of errored OaM requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ '429':
+ description: 'Response in case too many requests need to be executed in parallel or too many requests have been received within a time period. The maximum number of parallel requests is defined in an IntegerProfile with the service name as a prefix and MaxNumberOfParallelRequests as a suffix. Some time period to elapse for throttling incomming requests is defined in an IntegerProfile with the service name as a prefix and ThrottlingPeriod as a suffix'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 429
+ maximum: 429
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Too many requests'
+ '460':
+ description: 'Response in case the mountName provided in the request is not found in the list of connected devices'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 460
+ maximum: 460
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not connected. Requested device is currently not in connected state at the controller'
+ '461':
+ description: 'Response in case the (parent) topology object provided in the request (body or path) is not found in the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 461
+ maximum: 461
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not available. The topology (parent) object is currently not found in the cache.'
+ '470':
+ description: 'Response in case the resource specified in the request does not exist within the connected device'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 470
+ maximum: 470
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource not existing. Device informs about addressed resource unknown'
+ '471':
+ description: 'Response in case the (child) topology object specified in the request (body or path) does not exist within the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 471
+ maximum: 471
+ format: int32
+ message:
+ type: string
+ enum:
+ - '(Child) topology object not existing. Cache informs about addressed resource unknown.'
+ '502':
+ description: 'Response in case the server is acting as a gateway or proxy and received an invalid response from the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 502
+ maximum: 502
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway'
+ '530':
+ description: 'Response in case the referenced resource exists (e.g. device connected and resource exists in internal datatree), but response data is either not available, lost during transmission, incomplete or corrupted'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 530
+ maximum: 530
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Data invalid. Response data not available, incomplete or corrupted'
+ '531':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to authenticate at the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 531
+ maximum: 531
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Authentication at upstream server failed.'
+ '532':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to connect to the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 532
+ maximum: 532
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Upstream server not responding.'
+ '533':
+ description: 'Response in case the referenced resource for an connected device does not exist at the controller.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 533
+ maximum: 533
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource unknown. The resource for the connected device does not exist at the Controller.'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ life-cycle-state:
+ schema:
+ type: string
+ enum:
+ - 'EXPERIMENTAL'
+ - 'OPERATIONAL'
+ - 'DEPRECATED'
+ - 'OBSOLETE'
+ - 'UNKNOWN'
+ - 'NOT_YET_DEFINED'
+ example: 'EXPERIMENTAL'
+ schemas:
+ errorDescription:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
+ genericRepresentation:
+ type: object
+ required:
+ - response-value-list
+ - consequent-action-list
+ properties:
+ response-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ - value
+ - datatype
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Field name
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]'
+ value:
+ type: string
+ description: >
+ 'Field value
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]'
+ datatype:
+ type: string
+ description: >
+ 'Field datatype
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]'
+ consequent-action-list:
+ type: array
+ items:
+ type: object
+ required:
+ - label
+ - request
+ - display-in-new-browser-window
+ properties:
+ label:
+ type: string
+ description: >
+ 'Label that shall be presented on the button
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]'
+ request:
+ type: string
+ description: >
+ 'Request that shall be called, when button gets pressed
+ from
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}]
+ ://
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address}
+ or
+ {/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}]
+ :
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}]
+ [{/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]'
+ input-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Name of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]'
+ unit:
+ type: string
+ description: >
+ 'Unit of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]'
+ display-in-new-browser-window:
+ type: boolean
+ description: >
+ 'True in case Request shall be represented in a new browser window
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]'
+ logicalTerminationPoint:
+ type: object
+ required:
+ - uuid
+ - ltp-direction
+ - client-ltp
+ - server-ltp
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-direction:
+ type: string
+ client-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ server-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ layer-protocol:
+ type: array
+ minItems: 1
+ maxItems: 1
+ items:
+ oneOf:
+ - description: 'operation server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-server-interface-1-0:operation-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-server-interface-1-0:operation-server-interface-pac:
+ type: object
+ required:
+ - operation-server-interface-capability
+ - operation-server-interface-configuration
+ properties:
+ operation-server-interface-capability:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-server-interface-configuration:
+ type: object
+ required:
+ - life-cycle-state
+ properties:
+ life-cycle-state:
+ type: string
+ - description: 'http server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-server-interface-1-0:http-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-server-interface-1-0:http-server-interface-pac:
+ type: object
+ required:
+ - http-server-interface-capability
+ properties:
+ http-server-interface-capability:
+ type: object
+ required:
+ - application-name
+ - release-number
+ - data-update-period
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ data-update-period:
+ type: string
+ - description: 'tcp server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-server-interface-1-0:tcp-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-server-interface-1-0:tcp-server-interface-pac:
+ type: object
+ required:
+ - tcp-server-interface-configuration
+ properties:
+ tcp-server-interface-configuration:
+ type: object
+ required:
+ - description
+ - local-protocol
+ - local-address
+ - local-port
+ properties:
+ description:
+ type: string
+ local-protocol:
+ type: string
+ local-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ local-port:
+ type: integer
+ - description: 'operation client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-client-interface-1-0:operation-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-client-interface-1-0:operation-client-interface-pac:
+ type: object
+ required:
+ - operation-client-interface-configuration
+ - operation-client-interface-status
+ properties:
+ operation-client-interface-configuration:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'elasticsearch client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac:
+ type: object
+ required:
+ - elasticsearch-client-interface-configuration
+ - elasticsearch-client-interface-status
+ properties:
+ elasticsearch-client-interface-configuration:
+ type: object
+ required:
+ - index-alias
+ properties:
+ index-alias:
+ type: string
+ elasticsearch-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'http client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-client-interface-1-0:http-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-client-interface-1-0:http-client-interface-pac:
+ type: object
+ required:
+ - http-client-interface-configuration
+ properties:
+ http-client-interface-configuration:
+ type: object
+ required:
+ - application-name
+ - release-number
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ - description: 'tcp client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-client-interface-1-0:tcp-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-client-interface-1-0:tcp-client-interface-pac:
+ type: object
+ required:
+ - tcp-client-interface-configuration
+ properties:
+ tcp-client-interface-configuration:
+ type: object
+ required:
+ - remote-protocol
+ - remote-address
+ - remote-port
+ properties:
+ remote-protocol:
+ type: string
+ remote-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ remote-port:
+ type: integer
+ forwardingDomain:
+ type: object
+ required:
+ - uuid
+ - forwarding-construct
+ properties:
+ uuid:
+ type: string
+ forwarding-construct:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - name
+ - fc-port
+ properties:
+ uuid:
+ type: string
+ name:
+ type: array
+ items:
+ type: object
+ required:
+ - value-name
+ - value
+ properties:
+ value-name:
+ type: string
+ value:
+ type: string
+ fc-port:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ port-direction:
+ type: string
+ logical-termination-point:
+ type: string
+
+ CONTROL_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ - alarms-1-0:alarm-pac
+ - equipment
+ - firmware-1-0:firmware-collection
+ - profile-collection
+ - logical-termination-point
+ properties:
+ uuid:
+ type: string
+ alarms-1-0:alarm-pac:
+ $ref: '#/components/schemas/ALARM_PAC'
+ equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EQUIPMENT'
+ firmware-1-0:firmware-collection:
+ $ref: '#/components/schemas/FIRMWARE_COLLECTION'
+ profile-collection:
+ $ref: '#/components/schemas/PROFILE_COLLECTION'
+ forwarding-domain:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_DOMAIN'
+ logical-termination-point:
+ type: array
+ items:
+ $ref: '#/components/schemas/LOGICAL_TERMINATION_POINT'
+
+ ALARM_PAC:
+ type: object
+ required:
+ - alarm-capability
+ - alarm-configuration
+ - current-alarms
+ - alarm-event-records
+ properties:
+ alarm-capability:
+ $ref: '#/components/schemas/ALARM_CAPABILITY'
+ alarm-configuration:
+ $ref: '#/components/schemas/ALARM_CONFIGURATION'
+ current-alarms:
+ $ref: '#/components/schemas/CURRENT_ALARMS'
+ alarm-event-records:
+ $ref: '#/components/schemas/ALARM_EVENT_RECORDS'
+ ALARM_CAPABILITY:
+ type: object
+ ALARM_CONFIGURATION:
+ type: object
+ CURRENT_ALARMS:
+ type: object
+ ALARM_EVENT_RECORDS:
+ type: object
+
+ EQUIPMENT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ connector:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONNECTOR'
+ contained-holder:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONTAINED_HOLDER'
+ expected-equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EXPECTED_EQUIPMENT'
+ actual-equipment:
+ type: object
+ CONNECTOR:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ CONTAINED_HOLDER:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ EXPECTED_EQUIPMENT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ ACTUAL_EQUIPMENT:
+ type: object
+
+ FIRMWARE_COLLECTION:
+ type: object
+ required:
+ - firmware-component-list
+ properties:
+ firmware-component-list:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_LIST'
+ FIRMWARE_COMPONENT_LIST:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - firmware-component-pac
+ properties:
+ local-id:
+ type: string
+ firmware-component-pac:
+ type: object
+ required:
+ - firmware-component-capability
+ - firmware-component-status
+ properties:
+ firmware-component-capability:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_CAPABILITY'
+ firmware-component-status:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_STATUS'
+ FIRMWARE_COMPONENT_CAPABILITY:
+ type: object
+ FIRMWARE_COMPONENT_STATUS:
+ type: object
+
+ PROFILE_COLLECTION:
+ type: object
+ required:
+ - profile
+ properties:
+ profile:
+ type: array
+ items:
+ $ref: '#/components/schemas/PROFILE'
+ PROFILE:
+ oneOf:
+ - description: 'co-channel-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - co-channel-profile-1-0:co-channel-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'co-channel-profile-1-0:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE'
+ co-channel-profile-1-0:co-channel-profile-pac:
+ type: object
+ required:
+ - co-channel-profile-capability
+ - co-channel-profile-configuration
+ properties:
+ co-channel-profile-capability:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CAPABILITY'
+ co-channel-profile-configuration:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CONFIGURATION'
+ - description: 'policing-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - policing-profile-1-0:policing-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'policing-profile-1-0:PROFILE_NAME_TYPE_POLICING_PROFILE'
+ policing-profile-1-0:policing-profile-pac:
+ type: object
+ required:
+ - policing-profile-capability
+ - policing-profile-configuration
+ properties:
+ policing-profile-capability:
+ $ref: '#/components/schemas/POLICING_PROFILE_CAPABILITY'
+ policing-profile-configuration:
+ $ref: '#/components/schemas/POLICING_PROFILE_CONFIGURATION'
+ - description: 'qos-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - qos-profile-1-0:qos-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'qos-profile-1-0:PROFILE_NAME_TYPE_QOS_PROFILE'
+ qos-profile-1-0:qos-profile-pac:
+ type: object
+ required:
+ - qos-profile-capability
+ - qos-profile-configuration
+ properties:
+ qos-profile-capability:
+ $ref: '#/components/schemas/QOS_PROFILE_CAPABILITY'
+ qos-profile-configuration:
+ $ref: '#/components/schemas/QOS_PROFILE_CONFIGURATION'
+ - description: 'scheduler-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - scheduler-profile-1-0:scheduler-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'scheduler-profile-1-0:PROFILE_NAME_TYPE_SCHEDULER_PROFILE'
+ scheduler-profile-1-0:scheduler-profile-pac:
+ type: object
+ required:
+ - scheduler-profile-capability
+ - scheduler-profile-configuration
+ properties:
+ scheduler-profile-capability:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CAPABILITY'
+ scheduler-profile-configuration:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CONFIGURATION'
+ - description: 'wred-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-profile-1-0:wred-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-profile-1-0:PROFILE_NAME_TYPE_WRED_PROFILE'
+ wred-profile-1-0:wred-profile-pac:
+ type: object
+ required:
+ - wred-profile-capability
+ - wred-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_PROFILE_CONFIGURATION'
+ - description: 'wred-template-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-template-profile-1-0:wred-template-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-template-profile-1-0:PROFILE_NAME_TYPE_WRED_TEMPLATE_PROFILE'
+ wred-template-profile-1-0:wred-template-profile-pac:
+ type: object
+ required:
+ - wred-template-profile-capability
+ - wred-template-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CONFIGURATION'
+ CO_CHANNEL_PROFILE_CAPABILITY:
+ type: object
+ CO_CHANNEL_PROFILE_CONFIGURATION:
+ type: object
+ POLICING_PROFILE_CAPABILITY:
+ type: object
+ POLICING_PROFILE_CONFIGURATION:
+ type: object
+ QOS_PROFILE_CAPABILITY:
+ type: object
+ QOS_PROFILE_CONFIGURATION:
+ type: object
+ SCHEDULER_PROFILE_CAPABILITY:
+ type: object
+ SCHEDULER_PROFILE_CONFIGURATION:
+ type: object
+ WRED_PROFILE_CAPABILITY:
+ type: object
+ WRED_PROFILE_CONFIGURATION:
+ type: object
+ WRED_TEMPLATE_PROFILE_CAPABILITY:
+ type: object
+ WRED_TEMPLATE_PROFILE_CONFIGURATION:
+ type: object
+
+ LOGICAL_TERMINATION_POINT:
+ type: object
+ required:
+ - uuid
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-augment-1-0:ltp-augment-pac:
+ $ref: '#/components/schemas/LTP_AUGMENT_PAC'
+ embedded-clock:
+ type: array
+ items:
+ $ref: '#/components/schemas/EMBEDDED_CLOCK'
+ layer-protocol:
+ type: array
+ items:
+ $ref: '#/components/schemas/LAYER_PROTOCOL'
+ LTP_AUGMENT_PAC:
+ type: object
+ EMBEDDED_CLOCK:
+ type: object
+ LAYER_PROTOCOL:
+ oneOf:
+ - description: 'air-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - air-interface-2-0:air-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ air-interface-2-0:air-interface-pac:
+ $ref: '#/components/schemas/AIR_INTERFACE_PAC'
+ - description: 'ethernet-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ethernet-container-2-0:ethernet-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER'
+ ethernet-container-2-0:ethernet-container-pac:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_PAC'
+ - description: 'hybrid-mw-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - hybrid-mw-structure-2-0:hybrid-mw-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER'
+ hybrid-mw-structure-2-0:hybrid-mw-structure-pac:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_PAC'
+ - description: 'mac-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - mac-interface-1-0:mac-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER'
+ mac-interface-1-0:mac-interface-pac:
+ $ref: '#/components/schemas/MAC_INTERFACE_PAC'
+ - description: 'pure-ethernet-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - pure-ethernet-structure-2-0:pure-ethernet-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER'
+ pure-ethernet-structure-2-0:pure-ethernet-structure-pac:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_PAC'
+ - description: 'vlan-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - vlan-interface-1-0:vlan-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER'
+ vlan-interface-1-0:vlan-interface-pac:
+ $ref: '#/components/schemas/VLAN_INTERFACE_PAC'
+ - description: 'wire-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - wire-interface-2-0:wire-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER'
+ wire-interface-2-0:wire-interface-pac:
+ $ref: '#/components/schemas/WIRE_INTERFACE_PAC'
+ - description: 'ip-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ip-interface-1-0:ip-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER'
+ ip-interface-1-0:ip-interface-pac:
+ $ref: '#/components/schemas/IP_INTERFACE_PAC'
+ - description: 'tdm-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tdm-container-2-0:tdm-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER'
+ tdm-container-2-0:tdm-container-pac:
+ $ref: '#/components/schemas/TDM_CONTAINER_PAC'
+ FORWARDING_DOMAIN:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT'
+ FORWARDING_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT_PORT'
+ FORWARDING_CONSTRUCT_PORT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ LINK:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+ LINK_PORT:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+
+ AIR_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-historical-performances
+ additionalProperties: false
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-current-performance
+ - air-interface-historical-performances
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-current-performance:
+ $ref: '#/components/schemas/AIR_INTERFACE_CURRENT_PERFORMANCE'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ AIR_INTERFACE_CAPABILITY:
+ type: object
+ AIR_INTERFACE_CONFIGURATION:
+ type: object
+ AIR_INTERFACE_STATUS:
+ type: object
+ AIR_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ AIR_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ ETHERNET_CONTAINER_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-historical-performances
+ additionalProperties: false
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-current-performance
+ - ethernet-container-historical-performances
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-current-performance:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CURRENT_PERFORMANCE'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ ETHERNET_CONTAINER_CAPABILITY:
+ type: object
+ ETHERNET_CONTAINER_CONFIGURATION:
+ type: object
+ ETHERNET_CONTAINER_STATUS:
+ type: object
+ ETHERNET_CONTAINER_CURRENT_PERFORMANCE:
+ type: object
+ ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES:
+ type: object
+
+ HYBRID_MW_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-historical-performances
+ additionalProperties: false
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-current-performance
+ - hybrid-mw-structure-historical-performances
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-current-performance:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ HYBRID_MW_STRUCTURE_CAPABILITY:
+ type: object
+ HYBRID_MW_STRUCTURE_CONFIGURATION:
+ type: object
+ HYBRID_MW_STRUCTURE_STATUS:
+ type: object
+ HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ MAC_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ - description: 'live'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ MAC_INTERFACE_CAPABILITY:
+ type: object
+ MAC_INTERFACE_CONFIGURATION:
+ type: object
+ MAC_INTERFACE_STATUS:
+ type: object
+
+ PURE_ETHERNET_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-historical-performances
+ additionalProperties: false
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-current-performance
+ - pure-ethernet-structure-historical-performances
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-current-performance:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ PURE_ETHERNET_STRUCTURE_CAPABILITY:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CONFIGURATION:
+ type: object
+ PURE_ETHERNET_STRUCTURE_STATUS:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ VLAN_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ additionalProperties: false
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ - description: 'live'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ VLAN_INTERFACE_CAPABILITY:
+ type: object
+ VLAN_INTERFACE_CONFIGURATION:
+ type: object
+
+ WIRE_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-historical-performances
+ additionalProperties: false
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-current-performance
+ - wire-interface-historical-performances
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-current-performance:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CURRENT_PERFORMANCE'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ WIRE_INTERFACE_CAPABILITY:
+ type: object
+ WIRE_INTERFACE_CONFIGURATION:
+ type: object
+ WIRE_INTERFACE_STATUS:
+ type: object
+ WIRE_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ WIRE_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+ IP_INTERFACE_PAC:
+ type: object
+ required:
+ - ip-interface-capability
+ - ip-interface-configuration
+ - ip-interface-status
+ properties:
+ ip-interface-capability:
+ $ref: '#/components/schemas/IP_INTERFACE_CAPABILITY'
+ ip-interface-configuration:
+ $ref: '#/components/schemas/IP_INTERFACE_CONFIGURATION'
+ ip-interface-status:
+ $ref: '#/components/schemas/IP_INTERFACE_STATUS'
+ IP_INTERFACE_CAPABILITY:
+ type: object
+ IP_INTERFACE_CONFIGURATION:
+ type: object
+ IP_INTERFACE_STATUS:
+ type: object
+
+ TDM_CONTAINER_PAC:
+ type: object
+ required:
+ - tdm-container-capability
+ - tdm-container-configuration
+ - tdm-container-status
+ properties:
+ tdm-container-capability:
+ $ref: '#/components/schemas/TDM_CONTAINER_CAPABILITY'
+ tdm-container-configuration:
+ $ref: '#/components/schemas/TDM_CONTAINER_CONFIGURATION'
+ tdm-container-status:
+ $ref: '#/components/schemas/TDM_CONTAINER_STATUS'
+ TDM_CONTAINER_CAPABILITY:
+ type: object
+ TDM_CONTAINER_CONFIGURATION:
+ type: object
+ TDM_CONTAINER_STATUS:
+ type: object
+
+ securitySchemes:
+ apiKeyAuth:
+ type: apiKey
+ in: header
+ name: operation-key
+ basicAuth:
+ type: http
+ scheme: basic
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/README.md b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/README.md
new file mode 100644
index 00000000..eca65467
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/README.md
@@ -0,0 +1,5 @@
+# Functional Testing of Invalid or Missing RequestBody Handling of the Receivers of Notifications
+
+
+
+For the receiver services the OAS contains a requestBody. The tests therefore are executed with both an invalid requestBody and with a missing requestBody. In all cases a 400 response is expected.
\ No newline at end of file
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/mwdi+data.invalidOrMissingRequestBody.receiver.json b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/mwdi+data.invalidOrMissingRequestBody.receiver.json
new file mode 100644
index 00000000..d32da1fc
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/mwdi+data.invalidOrMissingRequestBody.receiver.json
@@ -0,0 +1,52 @@
+[
+ {
+ "mode": "debug",
+ "serverList": [
+ {
+ "serverName": "dummy",
+ "dummyUri": "ping.openBackhaul.com"
+ },
+ {
+ "serverName": "mwdi",
+ "server": "http://IP_ADRESS:PORT",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "YOUR_BASIC_AUTH_CODE",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "mwdi in mwdi+simulator.invalidOrMissingRequestBody.receiver",
+ "server": "http://localhost:3010",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ }
+ ],
+ "collectionInputList": [
+ {
+ "collectionName": "invalidOrMissingRequestBody.receiver",
+ "serverToBeApplied": "mwdi",
+ "mountName": "513250004",
+ "linkId": "101550001",
+ "kindOfReference": "dynamic"
+ },
+ {
+ "collectionName": "invalidOrMissingRequestBody.receiver_simulator",
+ "serverToBeApplied": "mwdi in mwdi+simulator.invalidOrMissingRequestBody.receiver",
+ "mountName": "305250001",
+ "linkId": "101550001",
+ "kindOfReference": "static",
+ "suffixUrlEncodingIsRequired": true
+ }
+ ]
+ }
+]
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/mwdi+diagram.invalidOrMissingRequestBody.receiver.plantuml b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/mwdi+diagram.invalidOrMissingRequestBody.receiver.plantuml
new file mode 100644
index 00000000..cdb91764
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/mwdi+diagram.invalidOrMissingRequestBody.receiver.plantuml
@@ -0,0 +1,79 @@
+@startuml mwdi+diagram.invalidOrMissingRequestBody.receiver
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.invalidOrMissingRequestBody.receiver
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+participant "/v1/regard-controller-attribute-value-change" as RCAVC
+participant "/v1/regard-device-alarm" as RDA
+participant "/v1/regard-device-attribute-value-change" as RDAVC
+participant "/v1/regard-device-object-deletion" as RDOD
+participant "/v1/regard-device-object-creation" as RDOC
+
+group Preparation
+ Data --\\o Postman : {servers}
+ activate Postman
+ Postman --\\o Collection : {servers}
+end
+
+note over Postman, RCAVC
+ For each service there are two testcases to be executed.
+ Both tests differ in the provided requestBody:
+ - an invalid requestBody according to OAS
+ - no requestBody provided at all
+end note
+
+
+group /v1/regard-controller-attribute-value-change
+ Collection --\\o Postman : {servers}
+ Postman -> RCAVC : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- RCAVC : 400
+ note right Postman #Orange
+ check for 400
+ end note
+end
+
+group /v1/regard-device-alarm
+ Collection --\\o Postman : {servers}
+ Postman -> RDA : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- RDA : 400
+ note right Postman #Orange
+ check for 400
+ end note
+end
+
+group /v1/regard-device-attribute-value-change
+ Collection --\\o Postman : {servers}
+ Postman -> RDAVC : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- RDAVC : 400
+ note right Postman #Orange
+ check for 400
+ end note
+end
+
+group /v1/regard-device-object-deletion
+ Collection --\\o Postman : {servers}
+ Postman -> RDOD : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- RDOD : 400
+ note right Postman #Orange
+ check for 400
+ end note
+end
+
+group /v1/regard-device-object-creation
+ Collection --\\o Postman : {servers}
+ Postman -> RDOC : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- RDOC : 400
+ note right Postman #Orange
+ check for 400
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/mwdi+diagram.invalidOrMissingRequestBody.receiver.png b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/mwdi+diagram.invalidOrMissingRequestBody.receiver.png
new file mode 100644
index 00000000..3aff01f6
Binary files /dev/null and b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/mwdi+diagram.invalidOrMissingRequestBody.receiver.png differ
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/mwdi+testcase.invalidOrMissingRequestBody.receiver.json b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/mwdi+testcase.invalidOrMissingRequestBody.receiver.json
new file mode 100644
index 00000000..2ce39e01
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/mwdi+testcase.invalidOrMissingRequestBody.receiver.json
@@ -0,0 +1,3232 @@
+
+{
+ "info": {
+ "name": "mwdi+testcase.invalidOrMissingRequestBody.receiver",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "UserInput",
+ "item": [
+ {
+ "name": "for loading user input",
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "exec": [
+ "console.clear();\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "logger.struc(\"===== mwdi+testcase.invalidOrMissingRequestBody.receiver ==========================\");\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Loading Input Data from File\r",
+ "****************************************************************************************/\r",
+ "var inputFromFile;\r",
+ "try {\r",
+ " inputFromFile = data\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Input data could not be loaded.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Environmental Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.environment.clear();\r",
+ "\r",
+ " let mode;\r",
+ " mode = inputFromFile.mode;\r",
+ " // Mode to be applied while running this testcase collection \r",
+ " // \"analysis\" -> human does detailed analysis of response bodies etc.\r",
+ " // \"testing\" -> automated approval based on binary result\r",
+ " // \"debugging\" -> support for programming the testcase collection\r",
+ "\r",
+ " let logLevel;\r",
+ " switch(mode) {\r",
+ " case \"debugging\":\r",
+ " logLevel = \"debug\";\r",
+ " break;\r",
+ " case \"analysis\":\r",
+ " logLevel = \"log\";\r",
+ " break;\r",
+ " case \"testing\":\r",
+ " logLevel = \"error\";\r",
+ " break;\r",
+ " default:\r",
+ " logLevel = \"debug\";\r",
+ " };\r",
+ " // Level of detail of the logging; find more info in pre-request script on the collection's level\r",
+ "\r",
+ " let serverList = [];\r",
+ " serverList = inputFromFile.serverList;\r",
+ " // list of addresses of applications, controllers etc.\r",
+ " // serverName : key attribute for identifying the servers\r",
+ " // dummyUri : http address that shall be addressed by bare processing Requests\r",
+ " // server : part of the URI that is comprised from protocol, IP address and TCP port\r",
+ " // pathToControlConstruct : part of the URI that is identical for all Requests that are addressing into the device's data tree\r",
+ " // authorizationCode : authentication that has to be sent in case of BasicAuth protection (e.g. OpenDaylight NBI)\r",
+ " // operationKey : ApiKey that has to be sent in case of addressing a MW SDN application (e.g. MicroWaveDeviceInventory)\r",
+ " // userName : user header to be sent in case of addressing a MW SDN application\r",
+ " // originator : originator header to be sent in case of addressing a MW SDN application\r",
+ " // xCorrelator : x-correlator header to be sent in case of addressing a MW SDN application\r",
+ " // traceIndicator : trace-indicator header to be sent in case of addressing a MW SDN application\r",
+ " // customerJourney : customer-journey header to be sent in case of addressing a MW SDN application\r",
+ "\r",
+ " let collectionInputList = [];\r",
+ " collectionInputList = inputFromFile.collectionInputList;\r",
+ " // list of inputs to individual test case collections\r",
+ " // serverToBeApplied : server that shall be addressed in the respective request/test case\r",
+ " // mountName : mountName of the device that is to be validated\r",
+ " // uuid of the object that is to be validated\r",
+ " // localId of the object that is to be validated\r",
+ " // linkId : linkName of the link that is to be validated\r",
+ " // linkPort : id of the linkPort that is to be validated\r",
+ "\r",
+ " pm.environment.set(\"mode\", mode);\r",
+ " pm.environment.set(\"logLevel\", logLevel);\r",
+ " pm.environment.set(\"serverList\", serverList);\r",
+ " pm.environment.set(\"collectionInputList\", collectionInputList);\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Environment variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Collection Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.collectionVariables.clear()\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Collection variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Local Variables and Preparing the Request\r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " let uri;\r",
+ " let dummyServerInfo;\r",
+ " dummyServerInfo = ExtractServerInformation(inputFromFile.serverList, \"dummy\");\r",
+ " uri = dummyServerInfo.dummyUri;\r",
+ "\r",
+ " pm.variables.clear();\r",
+ "\r",
+ " pm.variables.set(\"uri\", uri);\r",
+ "\r",
+ " pm.request.headers.upsert({ key: \"Accept\", value: \"application/json\" });\r",
+ " pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" })\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Local variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Functions\r",
+ "****************************************************************************************/\r",
+ "function ExtractServerInformation(serverList, searchedServerName) {\r",
+ " try {\r",
+ " for(let i=0; i log -> info -> warn -> error -> struc -> none",
+ "// It creates \"logger\" global variable which can be used anywhere in nested collection scripts",
+ "",
+ "const logLevels = [\"debug\", \"log\", \"info\", \"warn\", \"error\", \"struc\", \"none\"];",
+ "",
+ "const shouldLog = (level) => {",
+ " return logLevels.indexOf(level) >= logLevels.indexOf(pm.environment.get(\"logLevel\"));",
+ "};",
+ "",
+ "logger = {",
+ " debug: (message, ...optionalParams) => {",
+ " shouldLog(\"debug\") && console.log(message, ...optionalParams);",
+ " },",
+ " log: (message, ...optionalParams) => {",
+ " shouldLog(\"log\") && console.log(message, ...optionalParams);",
+ " },",
+ " info: (message, ...optionalParams) => {",
+ " shouldLog(\"info\") && console.log(message, ...optionalParams);",
+ " },",
+ " warn: (message, ...optionalParams) => {",
+ " shouldLog(\"warn\") && console.log(message, ...optionalParams);",
+ " },",
+ " error: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.error(message, ...optionalParams);",
+ " },",
+ " struc: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.log(message, ...optionalParams);",
+ " },",
+ "};",
+ ""
+ ]
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/simulators/MicroWaveDeviceInventory+simu.invalidOrMissingRequestBody.receiver.yaml b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/simulators/MicroWaveDeviceInventory+simu.invalidOrMissingRequestBody.receiver.yaml
new file mode 100644
index 00000000..72bab560
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Receiver/simulators/MicroWaveDeviceInventory+simu.invalidOrMissingRequestBody.receiver.yaml
@@ -0,0 +1,1916 @@
+openapi: 3.0.0
+info:
+ title: MWDI_1.2.2+simulator.invalidOrMissingRequestBody.receiver
+ version: 1.0.0
+
+paths:
+########################################################################################################################
+# Service Layer - Individual Part
+# MWDI_1.2.2+simulator.invalidOrMissingRequestBody.receiver in static reference mode
+########################################################################################################################
+
+ /v1/regard-controller-attribute-value-change:
+ post:
+ operationId: regardControllerAttributeValueChange
+ summary: 'Receives notifications about attribute value changes at the Controller'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:attribute-value-changed-notification
+ properties:
+ notification-proxy-1-0:attribute-value-changed-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - resource
+ - attribute-name
+ - new-value
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ resource:
+ type: string
+ attribute-name:
+ type: string
+ new-value:
+ type: string
+ example:
+ notification-proxy-1-0:attribute-value-changed-notification:
+ counter: 32
+ timestamp: '2023-07-11T08:21:50+01:00'
+ resource: '/core-model-1-4:network-control-domain=live/control-construct=odl-1/logical-termination-point=513250009/layer-protocol=0/mount-point-1-0:mount-point-pac/mount-point-status'
+ attribute-name: 'connection-status'
+ new-value: 'connecting'
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/regard-device-alarm:
+ post:
+ operationId: regardDeviceAlarm
+ summary: 'Receives notifications about alarms at devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:alarm-event-notification
+ properties:
+ notification-proxy-1-0:alarm-event-notification:
+ type: object
+ required:
+ - alarm-event-sequence-number
+ - timestamp
+ - resource
+ - alarm-type-id
+ - alarm-type-qualifier
+ - problem-severity
+ properties:
+ alarm-event-sequence-number:
+ type: integer
+ timestamp:
+ type: string
+ resource:
+ type: string
+ alarm-type-id:
+ type: string
+ alarm-type-qualifier:
+ type: string
+ problem-severity:
+ type: string
+ example:
+ notification-proxy-1-0:alarm-event-notification:
+ alarm-event-sequence-number: 1
+ timestamp: '2023-07-11T08:45:02+01:00'
+ resource: '/core-model-1-4:network-control-domain=live/control-construct=513250009/logical-termination-point=LTP-MWPS-TTP-RADIO-1A/layer-protocol=LP-MWPS-TTP-RADIO-1A/air-interface-2-0:air-interface-pac'
+ alarm-type-id: 'siae-alarms-1-0:radioEquipLinkTelemetryFailAlarm'
+ alarm-type-qualifier: ''
+ problem-severity: 'major'
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/regard-device-attribute-value-change:
+ post:
+ operationId: regardDeviceAttributeValueChange
+ summary: 'Receives notifications about changes of values of attributes inside the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:attribute-value-changed-notification
+ properties:
+ notification-proxy-1-0:attribute-value-changed-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - object-path
+ - attribute-name
+ - new-value
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ object-path:
+ type: string
+ attribute-name:
+ type: string
+ new-value:
+ type: string
+ example:
+ notification-proxy-1-0:attribute-value-changed-notification:
+ counter: 32
+ timestamp: '2010-11-20T14:00:00+01:00'
+ object-path: '/core-model-1-4:network-control-domain=live/control-construct=513250009/logical-termination-point=RF-2146697857/layer-protocol=2146697857/air-interface-2-0:air-interface-pac/air-interface-configuration'
+ attribute-name: 'performance-monitoring-is-on'
+ new-value: 'true'
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/regard-device-object-creation:
+ post:
+ operationId: regardDeviceObjectCreation
+ summary: 'Receives notifications about objects that have been created inside the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:object-creation-notification
+ properties:
+ notification-proxy-1-0:object-creation-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - object-path
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ object-path:
+ type: string
+ example:
+ notification-proxy-1-0:object-creation-notification:
+ counter: 2
+ timestamp: '2023-07-10T12:27:03+01:00'
+ object-path: '/core-model-1-4:network-control-domain=live/control-construct=513250009/profile-collection/profile=co-channel-17'
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/regard-device-object-deletion:
+ post:
+ operationId: regardDeviceObjectDeletion
+ summary: 'Receives notifications about objects that have been deleted inside the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:object-deletion-notification
+ properties:
+ notification-proxy-1-0:object-deletion-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - object-path
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ object-path:
+ type: string
+ example:
+ notification-proxy-1-0:object-deletion-notification:
+ counter: 14
+ timestamp: '2023-07-13T09:31:48+01:00'
+ object-path: '/core-model-1-4:network-control-domain=live/control-construct=513250009/logical-termination-point=RF-2146697857'
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+########################################################################################################################
+# Common Components
+########################################################################################################################
+components:
+ parameters:
+ user:
+ name: user
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'User Name'
+ description: 'User identifier from the system starting the service call'
+ originator:
+ name: originator
+ in: header
+ required: true
+ schema:
+ type: string
+ minLength: 3
+ example: 'Resolver'
+ description: >
+ 'Identification for the system consuming the API, as defined in
+ [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]'
+ x-correlator:
+ name: x-correlator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ description: 'Empty string accepted from external applications.'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses'
+ trace-indicator:
+ name: trace-indicator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^([0-9]+)(\.([0-9]+))*$'
+ description: 'Empty string accepted from external applications.'
+ example: '1.3.1'
+ description: 'Sequence of request numbers along the flow'
+ customer-journey:
+ name: customer-journey
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'Unknown value'
+ description: 'Holds information supporting customer’s journey to which the execution applies'
+ mountName:
+ name: mountName
+ in: path
+ required: true
+ schema:
+ type: string
+ example: '222250001'
+ description: 'The mountName of the device that is addressed by the request'
+ uuid:
+ name: uuid
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within the device'
+ uuid1:
+ name: uuid1
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Another instance identifier that is unique within the device'
+ localId:
+ name: localId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within its list'
+ fields:
+ name: fields
+ in: query
+ required: false
+ schema:
+ type: string
+ example: 'node(node-id;netconf-node-topology:connection-status)'
+ description: 'Query parameter to filter ressources according to RFC8040 fields filter spec'
+ responses:
+ responseForErroredServiceRequests:
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ responseForErroredOamRequests:
+ description: 'Response in case of errored OaM requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ '429':
+ description: 'Response in case too many requests need to be executed in parallel or too many requests have been received within a time period. The maximum number of parallel requests is defined in an IntegerProfile with the service name as a prefix and MaxNumberOfParallelRequests as a suffix. Some time period to elapse for throttling incomming requests is defined in an IntegerProfile with the service name as a prefix and ThrottlingPeriod as a suffix'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 429
+ maximum: 429
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Too many requests'
+ '460':
+ description: 'Response in case the mountName provided in the request is not found in the list of connected devices'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 460
+ maximum: 460
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not connected. Requested device is currently not in connected state at the controller'
+ '461':
+ description: 'Response in case the (parent) topology object provided in the request (body or path) is not found in the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 461
+ maximum: 461
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not available. The topology (parent) object is currently not found in the cache.'
+ '470':
+ description: 'Response in case the resource specified in the request does not exist within the connected device'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 470
+ maximum: 470
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource not existing. Device informs about addressed resource unknown'
+ '471':
+ description: 'Response in case the (child) topology object specified in the request (body or path) does not exist within the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 471
+ maximum: 471
+ format: int32
+ message:
+ type: string
+ enum:
+ - '(Child) topology object not existing. Cache informs about addressed resource unknown.'
+ '502':
+ description: 'Response in case the server is acting as a gateway or proxy and received an invalid response from the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 502
+ maximum: 502
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway'
+ '530':
+ description: 'Response in case the referenced resource exists (e.g. device connected and resource exists in internal datatree), but response data is either not available, lost during transmission, incomplete or corrupted'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 530
+ maximum: 530
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Data invalid. Response data not available, incomplete or corrupted'
+ '531':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to authenticate at the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 531
+ maximum: 531
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Authentication at upstream server failed.'
+ '532':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to connect to the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 532
+ maximum: 532
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Upstream server not responding.'
+ '533':
+ description: 'Response in case the referenced resource for an connected device does not exist at the controller.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 533
+ maximum: 533
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource unknown. The resource for the connected device does not exist at the Controller.'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ life-cycle-state:
+ schema:
+ type: string
+ enum:
+ - 'EXPERIMENTAL'
+ - 'OPERATIONAL'
+ - 'DEPRECATED'
+ - 'OBSOLETE'
+ - 'UNKNOWN'
+ - 'NOT_YET_DEFINED'
+ example: 'EXPERIMENTAL'
+ schemas:
+ errorDescription:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
+ genericRepresentation:
+ type: object
+ required:
+ - response-value-list
+ - consequent-action-list
+ properties:
+ response-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ - value
+ - datatype
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Field name
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]'
+ value:
+ type: string
+ description: >
+ 'Field value
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]'
+ datatype:
+ type: string
+ description: >
+ 'Field datatype
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]'
+ consequent-action-list:
+ type: array
+ items:
+ type: object
+ required:
+ - label
+ - request
+ - display-in-new-browser-window
+ properties:
+ label:
+ type: string
+ description: >
+ 'Label that shall be presented on the button
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]'
+ request:
+ type: string
+ description: >
+ 'Request that shall be called, when button gets pressed
+ from
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}]
+ ://
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address}
+ or
+ {/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}]
+ :
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}]
+ [{/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]'
+ input-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Name of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]'
+ unit:
+ type: string
+ description: >
+ 'Unit of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]'
+ display-in-new-browser-window:
+ type: boolean
+ description: >
+ 'True in case Request shall be represented in a new browser window
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]'
+ logicalTerminationPoint:
+ type: object
+ required:
+ - uuid
+ - ltp-direction
+ - client-ltp
+ - server-ltp
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-direction:
+ type: string
+ client-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ server-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ layer-protocol:
+ type: array
+ minItems: 1
+ maxItems: 1
+ items:
+ oneOf:
+ - description: 'operation server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-server-interface-1-0:operation-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-server-interface-1-0:operation-server-interface-pac:
+ type: object
+ required:
+ - operation-server-interface-capability
+ - operation-server-interface-configuration
+ properties:
+ operation-server-interface-capability:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-server-interface-configuration:
+ type: object
+ required:
+ - life-cycle-state
+ properties:
+ life-cycle-state:
+ type: string
+ - description: 'http server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-server-interface-1-0:http-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-server-interface-1-0:http-server-interface-pac:
+ type: object
+ required:
+ - http-server-interface-capability
+ properties:
+ http-server-interface-capability:
+ type: object
+ required:
+ - application-name
+ - release-number
+ - data-update-period
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ data-update-period:
+ type: string
+ - description: 'tcp server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-server-interface-1-0:tcp-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-server-interface-1-0:tcp-server-interface-pac:
+ type: object
+ required:
+ - tcp-server-interface-configuration
+ properties:
+ tcp-server-interface-configuration:
+ type: object
+ required:
+ - description
+ - local-protocol
+ - local-address
+ - local-port
+ properties:
+ description:
+ type: string
+ local-protocol:
+ type: string
+ local-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ local-port:
+ type: integer
+ - description: 'operation client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-client-interface-1-0:operation-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-client-interface-1-0:operation-client-interface-pac:
+ type: object
+ required:
+ - operation-client-interface-configuration
+ - operation-client-interface-status
+ properties:
+ operation-client-interface-configuration:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'elasticsearch client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac:
+ type: object
+ required:
+ - elasticsearch-client-interface-configuration
+ - elasticsearch-client-interface-status
+ properties:
+ elasticsearch-client-interface-configuration:
+ type: object
+ required:
+ - index-alias
+ properties:
+ index-alias:
+ type: string
+ elasticsearch-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'http client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-client-interface-1-0:http-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-client-interface-1-0:http-client-interface-pac:
+ type: object
+ required:
+ - http-client-interface-configuration
+ properties:
+ http-client-interface-configuration:
+ type: object
+ required:
+ - application-name
+ - release-number
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ - description: 'tcp client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-client-interface-1-0:tcp-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-client-interface-1-0:tcp-client-interface-pac:
+ type: object
+ required:
+ - tcp-client-interface-configuration
+ properties:
+ tcp-client-interface-configuration:
+ type: object
+ required:
+ - remote-protocol
+ - remote-address
+ - remote-port
+ properties:
+ remote-protocol:
+ type: string
+ remote-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ remote-port:
+ type: integer
+ forwardingDomain:
+ type: object
+ required:
+ - uuid
+ - forwarding-construct
+ properties:
+ uuid:
+ type: string
+ forwarding-construct:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - name
+ - fc-port
+ properties:
+ uuid:
+ type: string
+ name:
+ type: array
+ items:
+ type: object
+ required:
+ - value-name
+ - value
+ properties:
+ value-name:
+ type: string
+ value:
+ type: string
+ fc-port:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ port-direction:
+ type: string
+ logical-termination-point:
+ type: string
+
+ CONTROL_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ - alarms-1-0:alarm-pac
+ - equipment
+ - firmware-1-0:firmware-collection
+ - profile-collection
+ - logical-termination-point
+ properties:
+ uuid:
+ type: string
+ alarms-1-0:alarm-pac:
+ $ref: '#/components/schemas/ALARM_PAC'
+ equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EQUIPMENT'
+ firmware-1-0:firmware-collection:
+ $ref: '#/components/schemas/FIRMWARE_COLLECTION'
+ profile-collection:
+ $ref: '#/components/schemas/PROFILE_COLLECTION'
+ forwarding-domain:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_DOMAIN'
+ logical-termination-point:
+ type: array
+ items:
+ $ref: '#/components/schemas/LOGICAL_TERMINATION_POINT'
+
+ ALARM_PAC:
+ type: object
+ required:
+ - alarm-capability
+ - alarm-configuration
+ - current-alarms
+ - alarm-event-records
+ properties:
+ alarm-capability:
+ $ref: '#/components/schemas/ALARM_CAPABILITY'
+ alarm-configuration:
+ $ref: '#/components/schemas/ALARM_CONFIGURATION'
+ current-alarms:
+ $ref: '#/components/schemas/CURRENT_ALARMS'
+ alarm-event-records:
+ $ref: '#/components/schemas/ALARM_EVENT_RECORDS'
+ ALARM_CAPABILITY:
+ type: object
+ ALARM_CONFIGURATION:
+ type: object
+ CURRENT_ALARMS:
+ type: object
+ ALARM_EVENT_RECORDS:
+ type: object
+
+ EQUIPMENT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ connector:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONNECTOR'
+ contained-holder:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONTAINED_HOLDER'
+ expected-equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EXPECTED_EQUIPMENT'
+ actual-equipment:
+ type: object
+ CONNECTOR:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ CONTAINED_HOLDER:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ EXPECTED_EQUIPMENT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ ACTUAL_EQUIPMENT:
+ type: object
+
+ FIRMWARE_COLLECTION:
+ type: object
+ required:
+ - firmware-component-list
+ properties:
+ firmware-component-list:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_LIST'
+ FIRMWARE_COMPONENT_LIST:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - firmware-component-pac
+ properties:
+ local-id:
+ type: string
+ firmware-component-pac:
+ type: object
+ required:
+ - firmware-component-capability
+ - firmware-component-status
+ properties:
+ firmware-component-capability:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_CAPABILITY'
+ firmware-component-status:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_STATUS'
+ FIRMWARE_COMPONENT_CAPABILITY:
+ type: object
+ FIRMWARE_COMPONENT_STATUS:
+ type: object
+
+ PROFILE_COLLECTION:
+ type: object
+ required:
+ - profile
+ properties:
+ profile:
+ type: array
+ items:
+ $ref: '#/components/schemas/PROFILE'
+ PROFILE:
+ oneOf:
+ - description: 'co-channel-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - co-channel-profile-1-0:co-channel-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'co-channel-profile-1-0:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE'
+ co-channel-profile-1-0:co-channel-profile-pac:
+ type: object
+ required:
+ - co-channel-profile-capability
+ - co-channel-profile-configuration
+ properties:
+ co-channel-profile-capability:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CAPABILITY'
+ co-channel-profile-configuration:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CONFIGURATION'
+ - description: 'policing-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - policing-profile-1-0:policing-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'policing-profile-1-0:PROFILE_NAME_TYPE_POLICING_PROFILE'
+ policing-profile-1-0:policing-profile-pac:
+ type: object
+ required:
+ - policing-profile-capability
+ - policing-profile-configuration
+ properties:
+ policing-profile-capability:
+ $ref: '#/components/schemas/POLICING_PROFILE_CAPABILITY'
+ policing-profile-configuration:
+ $ref: '#/components/schemas/POLICING_PROFILE_CONFIGURATION'
+ - description: 'qos-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - qos-profile-1-0:qos-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'qos-profile-1-0:PROFILE_NAME_TYPE_QOS_PROFILE'
+ qos-profile-1-0:qos-profile-pac:
+ type: object
+ required:
+ - qos-profile-capability
+ - qos-profile-configuration
+ properties:
+ qos-profile-capability:
+ $ref: '#/components/schemas/QOS_PROFILE_CAPABILITY'
+ qos-profile-configuration:
+ $ref: '#/components/schemas/QOS_PROFILE_CONFIGURATION'
+ - description: 'scheduler-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - scheduler-profile-1-0:scheduler-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'scheduler-profile-1-0:PROFILE_NAME_TYPE_SCHEDULER_PROFILE'
+ scheduler-profile-1-0:scheduler-profile-pac:
+ type: object
+ required:
+ - scheduler-profile-capability
+ - scheduler-profile-configuration
+ properties:
+ scheduler-profile-capability:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CAPABILITY'
+ scheduler-profile-configuration:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CONFIGURATION'
+ - description: 'wred-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-profile-1-0:wred-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-profile-1-0:PROFILE_NAME_TYPE_WRED_PROFILE'
+ wred-profile-1-0:wred-profile-pac:
+ type: object
+ required:
+ - wred-profile-capability
+ - wred-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_PROFILE_CONFIGURATION'
+ - description: 'wred-template-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-template-profile-1-0:wred-template-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-template-profile-1-0:PROFILE_NAME_TYPE_WRED_TEMPLATE_PROFILE'
+ wred-template-profile-1-0:wred-template-profile-pac:
+ type: object
+ required:
+ - wred-template-profile-capability
+ - wred-template-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CONFIGURATION'
+ CO_CHANNEL_PROFILE_CAPABILITY:
+ type: object
+ CO_CHANNEL_PROFILE_CONFIGURATION:
+ type: object
+ POLICING_PROFILE_CAPABILITY:
+ type: object
+ POLICING_PROFILE_CONFIGURATION:
+ type: object
+ QOS_PROFILE_CAPABILITY:
+ type: object
+ QOS_PROFILE_CONFIGURATION:
+ type: object
+ SCHEDULER_PROFILE_CAPABILITY:
+ type: object
+ SCHEDULER_PROFILE_CONFIGURATION:
+ type: object
+ WRED_PROFILE_CAPABILITY:
+ type: object
+ WRED_PROFILE_CONFIGURATION:
+ type: object
+ WRED_TEMPLATE_PROFILE_CAPABILITY:
+ type: object
+ WRED_TEMPLATE_PROFILE_CONFIGURATION:
+ type: object
+
+ LOGICAL_TERMINATION_POINT:
+ type: object
+ required:
+ - uuid
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-augment-1-0:ltp-augment-pac:
+ $ref: '#/components/schemas/LTP_AUGMENT_PAC'
+ embedded-clock:
+ type: array
+ items:
+ $ref: '#/components/schemas/EMBEDDED_CLOCK'
+ layer-protocol:
+ type: array
+ items:
+ $ref: '#/components/schemas/LAYER_PROTOCOL'
+ LTP_AUGMENT_PAC:
+ type: object
+ EMBEDDED_CLOCK:
+ type: object
+ LAYER_PROTOCOL:
+ oneOf:
+ - description: 'air-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - air-interface-2-0:air-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ air-interface-2-0:air-interface-pac:
+ $ref: '#/components/schemas/AIR_INTERFACE_PAC'
+ - description: 'ethernet-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ethernet-container-2-0:ethernet-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER'
+ ethernet-container-2-0:ethernet-container-pac:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_PAC'
+ - description: 'hybrid-mw-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - hybrid-mw-structure-2-0:hybrid-mw-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER'
+ hybrid-mw-structure-2-0:hybrid-mw-structure-pac:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_PAC'
+ - description: 'mac-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - mac-interface-1-0:mac-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER'
+ mac-interface-1-0:mac-interface-pac:
+ $ref: '#/components/schemas/MAC_INTERFACE_PAC'
+ - description: 'pure-ethernet-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - pure-ethernet-structure-2-0:pure-ethernet-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER'
+ pure-ethernet-structure-2-0:pure-ethernet-structure-pac:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_PAC'
+ - description: 'vlan-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - vlan-interface-1-0:vlan-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER'
+ vlan-interface-1-0:vlan-interface-pac:
+ $ref: '#/components/schemas/VLAN_INTERFACE_PAC'
+ - description: 'wire-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - wire-interface-2-0:wire-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER'
+ wire-interface-2-0:wire-interface-pac:
+ $ref: '#/components/schemas/WIRE_INTERFACE_PAC'
+ - description: 'ip-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ip-interface-1-0:ip-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER'
+ ip-interface-1-0:ip-interface-pac:
+ $ref: '#/components/schemas/IP_INTERFACE_PAC'
+ - description: 'tdm-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tdm-container-2-0:tdm-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER'
+ tdm-container-2-0:tdm-container-pac:
+ $ref: '#/components/schemas/TDM_CONTAINER_PAC'
+ FORWARDING_DOMAIN:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT'
+ FORWARDING_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT_PORT'
+ FORWARDING_CONSTRUCT_PORT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ LINK:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+ LINK_PORT:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+
+ AIR_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-historical-performances
+ additionalProperties: false
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-current-performance
+ - air-interface-historical-performances
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-current-performance:
+ $ref: '#/components/schemas/AIR_INTERFACE_CURRENT_PERFORMANCE'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ AIR_INTERFACE_CAPABILITY:
+ type: object
+ AIR_INTERFACE_CONFIGURATION:
+ type: object
+ AIR_INTERFACE_STATUS:
+ type: object
+ AIR_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ AIR_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ ETHERNET_CONTAINER_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-historical-performances
+ additionalProperties: false
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-current-performance
+ - ethernet-container-historical-performances
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-current-performance:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CURRENT_PERFORMANCE'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ ETHERNET_CONTAINER_CAPABILITY:
+ type: object
+ ETHERNET_CONTAINER_CONFIGURATION:
+ type: object
+ ETHERNET_CONTAINER_STATUS:
+ type: object
+ ETHERNET_CONTAINER_CURRENT_PERFORMANCE:
+ type: object
+ ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES:
+ type: object
+
+ HYBRID_MW_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-historical-performances
+ additionalProperties: false
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-current-performance
+ - hybrid-mw-structure-historical-performances
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-current-performance:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ HYBRID_MW_STRUCTURE_CAPABILITY:
+ type: object
+ HYBRID_MW_STRUCTURE_CONFIGURATION:
+ type: object
+ HYBRID_MW_STRUCTURE_STATUS:
+ type: object
+ HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ MAC_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ - description: 'live'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ MAC_INTERFACE_CAPABILITY:
+ type: object
+ MAC_INTERFACE_CONFIGURATION:
+ type: object
+ MAC_INTERFACE_STATUS:
+ type: object
+
+ PURE_ETHERNET_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-historical-performances
+ additionalProperties: false
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-current-performance
+ - pure-ethernet-structure-historical-performances
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-current-performance:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ PURE_ETHERNET_STRUCTURE_CAPABILITY:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CONFIGURATION:
+ type: object
+ PURE_ETHERNET_STRUCTURE_STATUS:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ VLAN_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ additionalProperties: false
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ - description: 'live'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ VLAN_INTERFACE_CAPABILITY:
+ type: object
+ VLAN_INTERFACE_CONFIGURATION:
+ type: object
+
+ WIRE_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-historical-performances
+ additionalProperties: false
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-current-performance
+ - wire-interface-historical-performances
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-current-performance:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CURRENT_PERFORMANCE'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ WIRE_INTERFACE_CAPABILITY:
+ type: object
+ WIRE_INTERFACE_CONFIGURATION:
+ type: object
+ WIRE_INTERFACE_STATUS:
+ type: object
+ WIRE_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ WIRE_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+ IP_INTERFACE_PAC:
+ type: object
+ required:
+ - ip-interface-capability
+ - ip-interface-configuration
+ - ip-interface-status
+ properties:
+ ip-interface-capability:
+ $ref: '#/components/schemas/IP_INTERFACE_CAPABILITY'
+ ip-interface-configuration:
+ $ref: '#/components/schemas/IP_INTERFACE_CONFIGURATION'
+ ip-interface-status:
+ $ref: '#/components/schemas/IP_INTERFACE_STATUS'
+ IP_INTERFACE_CAPABILITY:
+ type: object
+ IP_INTERFACE_CONFIGURATION:
+ type: object
+ IP_INTERFACE_STATUS:
+ type: object
+
+ TDM_CONTAINER_PAC:
+ type: object
+ required:
+ - tdm-container-capability
+ - tdm-container-configuration
+ - tdm-container-status
+ properties:
+ tdm-container-capability:
+ $ref: '#/components/schemas/TDM_CONTAINER_CAPABILITY'
+ tdm-container-configuration:
+ $ref: '#/components/schemas/TDM_CONTAINER_CONFIGURATION'
+ tdm-container-status:
+ $ref: '#/components/schemas/TDM_CONTAINER_STATUS'
+ TDM_CONTAINER_CAPABILITY:
+ type: object
+ TDM_CONTAINER_CONFIGURATION:
+ type: object
+ TDM_CONTAINER_STATUS:
+ type: object
+
+ securitySchemes:
+ apiKeyAuth:
+ type: apiKey
+ in: header
+ name: operation-key
+ basicAuth:
+ type: http
+ scheme: basic
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/README.md b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/README.md
new file mode 100644
index 00000000..e1e65c4e
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/README.md
@@ -0,0 +1,5 @@
+# Functional Testing of Invalid or Missing RequestBody Handling of offered Subscriptions
+
+
+
+Note that for all subscription services, a specific requestBody is required.
\ No newline at end of file
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/mwdi+data.invalidOrMissingRequestBody.subscriptions.json b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/mwdi+data.invalidOrMissingRequestBody.subscriptions.json
new file mode 100644
index 00000000..f52a8d80
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/mwdi+data.invalidOrMissingRequestBody.subscriptions.json
@@ -0,0 +1,52 @@
+[
+ {
+ "mode": "debug",
+ "serverList": [
+ {
+ "serverName": "dummy",
+ "dummyUri": "ping.openBackhaul.com"
+ },
+ {
+ "serverName": "mwdi",
+ "server": "http://IP_ADRESS:PORT",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "YOUR_BASIC_AUTH_CODE",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "mwdi in mwdi+simulator.invalidOrMissingRequestBody.subscriptions",
+ "server": "http://localhost:3009",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ }
+ ],
+ "collectionInputList": [
+ {
+ "collectionName": "invalidOrMissingRequestBody.subscriptions",
+ "serverToBeApplied": "mwdi",
+ "mountName": "513250004",
+ "linkId": "101550001",
+ "kindOfReference": "dynamic"
+ },
+ {
+ "collectionName": "invalidOrMissingRequestBody.subscriptions_simulator",
+ "serverToBeApplied": "mwdi in mwdi+simulator.invalidOrMissingRequestBody.subscriptions",
+ "mountName": "305250001",
+ "linkId": "101550001",
+ "kindOfReference": "static",
+ "suffixUrlEncodingIsRequired": true
+ }
+ ]
+ }
+]
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/mwdi+diagram.invalidOrMissingRequestBody.subscriptions.plantuml b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/mwdi+diagram.invalidOrMissingRequestBody.subscriptions.plantuml
new file mode 100644
index 00000000..a59d1071
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/mwdi+diagram.invalidOrMissingRequestBody.subscriptions.plantuml
@@ -0,0 +1,59 @@
+@startuml mwdi+diagram.invalidOrMissingRequestBody.subscriptions
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.invalidOrMissingRequestBody.subscriptions
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+participant "/v1/notify-attribute-value-changes" as NAVC
+participant "/v1/notify-object-creations" as NOC
+participant "/v1/notify-object-deletions" as NOD
+
+
+group Preparation
+ Data --\\o Postman : {servers}
+ activate Postman
+ Postman --\\o Collection : {servers}
+end
+
+note over Postman, NAVC
+ For each service there are two testcases to be executed.
+ Both tests differ in the provided requestBody:
+ - an invalid requestBody according to OAS
+ - no requestBody provided at all
+end note
+
+ group /v1/notify-attribute-value-changes
+ Collection --\\o Postman : {servers}
+ Postman -> NAVC : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- NAVC : 400
+ note right Postman #Orange
+ check for 400
+ end note
+ end
+
+ group /v1/notify-object-creations
+ Collection --\\o Postman : {servers}
+ Postman -> NOC : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- NOC : 400
+ note right Postman #Orange
+ check for 400
+ end note
+ end
+
+ group /v1/notify-object-deletions
+ Collection --\\o Postman : {servers}
+ Postman -> NOD : (a) {invalidRequestBody} \n(b) no requestBody
+ Postman <-- NOD : 400
+ note right Postman #Orange
+ check for 400
+ end note
+ end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/mwdi+diagram.invalidOrMissingRequestBody.subscriptions.png b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/mwdi+diagram.invalidOrMissingRequestBody.subscriptions.png
new file mode 100644
index 00000000..13dc8ee5
Binary files /dev/null and b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/mwdi+diagram.invalidOrMissingRequestBody.subscriptions.png differ
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/mwdi+testcase.invalidOrMissingRequestBody.subscriptions.json b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/mwdi+testcase.invalidOrMissingRequestBody.subscriptions.json
new file mode 100644
index 00000000..8cd5f3e6
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/mwdi+testcase.invalidOrMissingRequestBody.subscriptions.json
@@ -0,0 +1,2063 @@
+{
+ "info": {
+ "name": "mwdi+testcase.invalidOrMissingRequestBody.subscriptions",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "UserInput",
+ "item": [
+ {
+ "name": "for loading user input",
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "exec": [
+ "console.clear();\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "logger.struc(\"===== mwdi+testcase.invalidOrMissingRequestBody.subscriptions ==========================\");\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Loading Input Data from File\r",
+ "****************************************************************************************/\r",
+ "var inputFromFile;\r",
+ "try {\r",
+ " inputFromFile = data\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Input data could not be loaded.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Environmental Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.environment.clear();\r",
+ "\r",
+ " let mode;\r",
+ " mode = inputFromFile.mode;\r",
+ " // Mode to be applied while running this testcase collection \r",
+ " // \"analysis\" -> human does detailed analysis of response bodies etc.\r",
+ " // \"testing\" -> automated approval based on binary result\r",
+ " // \"debugging\" -> support for programming the testcase collection\r",
+ "\r",
+ " let logLevel;\r",
+ " switch(mode) {\r",
+ " case \"debugging\":\r",
+ " logLevel = \"debug\";\r",
+ " break;\r",
+ " case \"analysis\":\r",
+ " logLevel = \"log\";\r",
+ " break;\r",
+ " case \"testing\":\r",
+ " logLevel = \"error\";\r",
+ " break;\r",
+ " default:\r",
+ " logLevel = \"debug\";\r",
+ " };\r",
+ " // Level of detail of the logging; find more info in pre-request script on the collection's level\r",
+ "\r",
+ " let serverList = [];\r",
+ " serverList = inputFromFile.serverList;\r",
+ " // list of addresses of applications, controllers etc.\r",
+ " // serverName : key attribute for identifying the servers\r",
+ " // dummyUri : http address that shall be addressed by bare processing Requests\r",
+ " // server : part of the URI that is comprised from protocol, IP address and TCP port\r",
+ " // pathToControlConstruct : part of the URI that is identical for all Requests that are addressing into the device's data tree\r",
+ " // authorizationCode : authentication that has to be sent in case of BasicAuth protection (e.g. OpenDaylight NBI)\r",
+ " // operationKey : ApiKey that has to be sent in case of addressing a MW SDN application (e.g. MicroWaveDeviceInventory)\r",
+ " // userName : user header to be sent in case of addressing a MW SDN application\r",
+ " // originator : originator header to be sent in case of addressing a MW SDN application\r",
+ " // xCorrelator : x-correlator header to be sent in case of addressing a MW SDN application\r",
+ " // traceIndicator : trace-indicator header to be sent in case of addressing a MW SDN application\r",
+ " // customerJourney : customer-journey header to be sent in case of addressing a MW SDN application\r",
+ "\r",
+ " let collectionInputList = [];\r",
+ " collectionInputList = inputFromFile.collectionInputList;\r",
+ " // list of inputs to individual test case collections\r",
+ " // serverToBeApplied : server that shall be addressed in the respective request/test case\r",
+ " // mountName : mountName of the device that is to be validated\r",
+ " // uuid of the object that is to be validated\r",
+ " // localId of the object that is to be validated\r",
+ " // linkId : linkName of the link that is to be validated\r",
+ " // linkPort : id of the linkPort that is to be validated\r",
+ "\r",
+ " pm.environment.set(\"mode\", mode);\r",
+ " pm.environment.set(\"logLevel\", logLevel);\r",
+ " pm.environment.set(\"serverList\", serverList);\r",
+ " pm.environment.set(\"collectionInputList\", collectionInputList);\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Environment variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Collection Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.collectionVariables.clear()\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Collection variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Local Variables and Preparing the Request\r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " let uri;\r",
+ " let dummyServerInfo;\r",
+ " dummyServerInfo = ExtractServerInformation(inputFromFile.serverList, \"dummy\");\r",
+ " uri = dummyServerInfo.dummyUri;\r",
+ "\r",
+ " pm.variables.clear();\r",
+ "\r",
+ " pm.variables.set(\"uri\", uri);\r",
+ "\r",
+ " pm.request.headers.upsert({ key: \"Accept\", value: \"application/json\" });\r",
+ " pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" })\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Local variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Functions\r",
+ "****************************************************************************************/\r",
+ "function ExtractServerInformation(serverList, searchedServerName) {\r",
+ " try {\r",
+ " for(let i=0; i log -> info -> warn -> error -> struc -> none",
+ "// It creates \"logger\" global variable which can be used anywhere in nested collection scripts",
+ "",
+ "const logLevels = [\"debug\", \"log\", \"info\", \"warn\", \"error\", \"struc\", \"none\"];",
+ "",
+ "const shouldLog = (level) => {",
+ " return logLevels.indexOf(level) >= logLevels.indexOf(pm.environment.get(\"logLevel\"));",
+ "};",
+ "",
+ "logger = {",
+ " debug: (message, ...optionalParams) => {",
+ " shouldLog(\"debug\") && console.log(message, ...optionalParams);",
+ " },",
+ " log: (message, ...optionalParams) => {",
+ " shouldLog(\"log\") && console.log(message, ...optionalParams);",
+ " },",
+ " info: (message, ...optionalParams) => {",
+ " shouldLog(\"info\") && console.log(message, ...optionalParams);",
+ " },",
+ " warn: (message, ...optionalParams) => {",
+ " shouldLog(\"warn\") && console.log(message, ...optionalParams);",
+ " },",
+ " error: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.error(message, ...optionalParams);",
+ " },",
+ " struc: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.log(message, ...optionalParams);",
+ " },",
+ "};",
+ ""
+ ]
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/simulators/MicroWaveDeviceInventory+simu.invalidOrMissingRequestBody.subscriptions.yaml b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/simulators/MicroWaveDeviceInventory+simu.invalidOrMissingRequestBody.subscriptions.yaml
new file mode 100644
index 00000000..313e81db
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.2.2/Subscriptions/simulators/MicroWaveDeviceInventory+simu.invalidOrMissingRequestBody.subscriptions.yaml
@@ -0,0 +1,1864 @@
+openapi: 3.0.0
+info:
+ title: MWDI_1.2.2+simulator.invalidOrMissingRequestBody.subscriptions
+ version: 1.0.0
+
+paths:
+########################################################################################################################
+# Service Layer - Individual Part
+# MWDI_1.2.2+simulator.invalidOrMissingRequestBody.subscriptions in static reference mode
+########################################################################################################################
+
+ /v1/notify-attribute-value-changes:
+ post:
+ operationId: notifyAttributeValueChanges
+ summary: 'Offers subscribing for notifications about device attributes being changed in the cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscriber-application
+ - subscriber-release-number
+ - subscriber-operation
+ - subscriber-protocol
+ - subscriber-address
+ - subscriber-port
+ properties:
+ subscriber-application:
+ type: string
+ subscriber-release-number:
+ type: string
+ pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
+ subscriber-operation:
+ type: string
+ subscriber-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscriber-address:
+ type: object
+ additionalProperties: false
+ properties:
+ ip-address:
+ type: object
+ additionalProperties: false
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ subscriber-port:
+ type: integer
+ example:
+ subscriber-application: 'HistoricalMicrowaveDeviceInventory'
+ subscriber-release-number: '1.0.0'
+ subscriber-operation: '/v1/regard-attribute-value-change'
+ subscriber-protocol: 'HTTP'
+ subscriber-address:
+ ip-address:
+ ipv-4-address: '127.0.0.1'
+ subscriber-port: 4013
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/notify-object-creations:
+ post:
+ operationId: notifyObjectCreations
+ summary: 'Offers subscribing for notifications about device objects being created in the cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscriber-application
+ - subscriber-release-number
+ - subscriber-operation
+ - subscriber-protocol
+ - subscriber-address
+ - subscriber-port
+ properties:
+ subscriber-application:
+ type: string
+ subscriber-release-number:
+ type: string
+ subscriber-operation:
+ type: string
+ subscriber-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscriber-address:
+ type: object
+ additionalProperties: false
+ properties:
+ ip-address:
+ type: object
+ additionalProperties: false
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ subscriber-port:
+ type: integer
+ example:
+ subscriber-application: 'HistoricalMicrowaveDeviceInventory'
+ subscriber-release-number: '1.0.0'
+ subscriber-operation: '/v1/regard-object-creation'
+ subscriber-protocol: 'HTTP'
+ subscriber-address:
+ ip-address:
+ ipv-4-address: '127.0.0.1'
+ subscriber-port: 4013
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/notify-object-deletions:
+ post:
+ operationId: notifyObjectDeletions
+ summary: 'Offers subscribing for notifications about device objects being deleted from the cache'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscriber-application
+ - subscriber-release-number
+ - subscriber-operation
+ - subscriber-protocol
+ - subscriber-address
+ - subscriber-port
+ properties:
+ subscriber-application:
+ type: string
+ subscriber-release-number:
+ type: string
+ subscriber-operation:
+ type: string
+ subscriber-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscriber-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ subscriber-port:
+ type: integer
+ example:
+ subscriber-application: 'HistoricalMicrowaveDeviceInventory'
+ subscriber-release-number: '1.0.0'
+ subscriber-operation: '/v1/regard-object-deletion'
+ subscriber-protocol: 'HTTP'
+ subscriber-address:
+ ip-address:
+ ipv-4-address: '127.0.0.1'
+ subscriber-port: 4013
+ responses:
+ '400':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+########################################################################################################################
+# Common Components
+########################################################################################################################
+components:
+ parameters:
+ user:
+ name: user
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'User Name'
+ description: 'User identifier from the system starting the service call'
+ originator:
+ name: originator
+ in: header
+ required: true
+ schema:
+ type: string
+ minLength: 3
+ example: 'Resolver'
+ description: >
+ 'Identification for the system consuming the API, as defined in
+ [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]'
+ x-correlator:
+ name: x-correlator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ description: 'Empty string accepted from external applications.'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses'
+ trace-indicator:
+ name: trace-indicator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^([0-9]+)(\.([0-9]+))*$'
+ description: 'Empty string accepted from external applications.'
+ example: '1.3.1'
+ description: 'Sequence of request numbers along the flow'
+ customer-journey:
+ name: customer-journey
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'Unknown value'
+ description: 'Holds information supporting customer’s journey to which the execution applies'
+ mountName:
+ name: mountName
+ in: path
+ required: true
+ schema:
+ type: string
+ example: '222250001'
+ description: 'The mountName of the device that is addressed by the request'
+ uuid:
+ name: uuid
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within the device'
+ uuid1:
+ name: uuid1
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Another instance identifier that is unique within the device'
+ localId:
+ name: localId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within its list'
+ fields:
+ name: fields
+ in: query
+ required: false
+ schema:
+ type: string
+ example: 'node(node-id;netconf-node-topology:connection-status)'
+ description: 'Query parameter to filter ressources according to RFC8040 fields filter spec'
+ responses:
+ responseForErroredServiceRequests:
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ responseForErroredOamRequests:
+ description: 'Response in case of errored OaM requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ '429':
+ description: 'Response in case too many requests need to be executed in parallel or too many requests have been received within a time period. The maximum number of parallel requests is defined in an IntegerProfile with the service name as a prefix and MaxNumberOfParallelRequests as a suffix. Some time period to elapse for throttling incomming requests is defined in an IntegerProfile with the service name as a prefix and ThrottlingPeriod as a suffix'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 429
+ maximum: 429
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Too many requests'
+ '460':
+ description: 'Response in case the mountName provided in the request is not found in the list of connected devices'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 460
+ maximum: 460
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not connected. Requested device is currently not in connected state at the controller'
+ '461':
+ description: 'Response in case the (parent) topology object provided in the request (body or path) is not found in the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 461
+ maximum: 461
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not available. The topology (parent) object is currently not found in the cache.'
+ '470':
+ description: 'Response in case the resource specified in the request does not exist within the connected device'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 470
+ maximum: 470
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource not existing. Device informs about addressed resource unknown'
+ '471':
+ description: 'Response in case the (child) topology object specified in the request (body or path) does not exist within the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 471
+ maximum: 471
+ format: int32
+ message:
+ type: string
+ enum:
+ - '(Child) topology object not existing. Cache informs about addressed resource unknown.'
+ '502':
+ description: 'Response in case the server is acting as a gateway or proxy and received an invalid response from the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 502
+ maximum: 502
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway'
+ '530':
+ description: 'Response in case the referenced resource exists (e.g. device connected and resource exists in internal datatree), but response data is either not available, lost during transmission, incomplete or corrupted'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 530
+ maximum: 530
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Data invalid. Response data not available, incomplete or corrupted'
+ '531':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to authenticate at the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 531
+ maximum: 531
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Authentication at upstream server failed.'
+ '532':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to connect to the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 532
+ maximum: 532
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Upstream server not responding.'
+ '533':
+ description: 'Response in case the referenced resource for an connected device does not exist at the controller.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 533
+ maximum: 533
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource unknown. The resource for the connected device does not exist at the Controller.'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ life-cycle-state:
+ schema:
+ type: string
+ enum:
+ - 'EXPERIMENTAL'
+ - 'OPERATIONAL'
+ - 'DEPRECATED'
+ - 'OBSOLETE'
+ - 'UNKNOWN'
+ - 'NOT_YET_DEFINED'
+ example: 'EXPERIMENTAL'
+ schemas:
+ errorDescription:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
+ genericRepresentation:
+ type: object
+ required:
+ - response-value-list
+ - consequent-action-list
+ properties:
+ response-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ - value
+ - datatype
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Field name
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]'
+ value:
+ type: string
+ description: >
+ 'Field value
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]'
+ datatype:
+ type: string
+ description: >
+ 'Field datatype
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]'
+ consequent-action-list:
+ type: array
+ items:
+ type: object
+ required:
+ - label
+ - request
+ - display-in-new-browser-window
+ properties:
+ label:
+ type: string
+ description: >
+ 'Label that shall be presented on the button
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]'
+ request:
+ type: string
+ description: >
+ 'Request that shall be called, when button gets pressed
+ from
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}]
+ ://
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address}
+ or
+ {/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}]
+ :
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}]
+ [{/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]'
+ input-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Name of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]'
+ unit:
+ type: string
+ description: >
+ 'Unit of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]'
+ display-in-new-browser-window:
+ type: boolean
+ description: >
+ 'True in case Request shall be represented in a new browser window
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]'
+ logicalTerminationPoint:
+ type: object
+ required:
+ - uuid
+ - ltp-direction
+ - client-ltp
+ - server-ltp
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-direction:
+ type: string
+ client-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ server-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ layer-protocol:
+ type: array
+ minItems: 1
+ maxItems: 1
+ items:
+ oneOf:
+ - description: 'operation server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-server-interface-1-0:operation-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-server-interface-1-0:operation-server-interface-pac:
+ type: object
+ required:
+ - operation-server-interface-capability
+ - operation-server-interface-configuration
+ properties:
+ operation-server-interface-capability:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-server-interface-configuration:
+ type: object
+ required:
+ - life-cycle-state
+ properties:
+ life-cycle-state:
+ type: string
+ - description: 'http server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-server-interface-1-0:http-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-server-interface-1-0:http-server-interface-pac:
+ type: object
+ required:
+ - http-server-interface-capability
+ properties:
+ http-server-interface-capability:
+ type: object
+ required:
+ - application-name
+ - release-number
+ - data-update-period
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ data-update-period:
+ type: string
+ - description: 'tcp server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-server-interface-1-0:tcp-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-server-interface-1-0:tcp-server-interface-pac:
+ type: object
+ required:
+ - tcp-server-interface-configuration
+ properties:
+ tcp-server-interface-configuration:
+ type: object
+ required:
+ - description
+ - local-protocol
+ - local-address
+ - local-port
+ properties:
+ description:
+ type: string
+ local-protocol:
+ type: string
+ local-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ local-port:
+ type: integer
+ - description: 'operation client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-client-interface-1-0:operation-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-client-interface-1-0:operation-client-interface-pac:
+ type: object
+ required:
+ - operation-client-interface-configuration
+ - operation-client-interface-status
+ properties:
+ operation-client-interface-configuration:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'elasticsearch client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac:
+ type: object
+ required:
+ - elasticsearch-client-interface-configuration
+ - elasticsearch-client-interface-status
+ properties:
+ elasticsearch-client-interface-configuration:
+ type: object
+ required:
+ - index-alias
+ properties:
+ index-alias:
+ type: string
+ elasticsearch-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'http client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-client-interface-1-0:http-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-client-interface-1-0:http-client-interface-pac:
+ type: object
+ required:
+ - http-client-interface-configuration
+ properties:
+ http-client-interface-configuration:
+ type: object
+ required:
+ - application-name
+ - release-number
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ - description: 'tcp client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-client-interface-1-0:tcp-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-client-interface-1-0:tcp-client-interface-pac:
+ type: object
+ required:
+ - tcp-client-interface-configuration
+ properties:
+ tcp-client-interface-configuration:
+ type: object
+ required:
+ - remote-protocol
+ - remote-address
+ - remote-port
+ properties:
+ remote-protocol:
+ type: string
+ remote-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ remote-port:
+ type: integer
+ forwardingDomain:
+ type: object
+ required:
+ - uuid
+ - forwarding-construct
+ properties:
+ uuid:
+ type: string
+ forwarding-construct:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - name
+ - fc-port
+ properties:
+ uuid:
+ type: string
+ name:
+ type: array
+ items:
+ type: object
+ required:
+ - value-name
+ - value
+ properties:
+ value-name:
+ type: string
+ value:
+ type: string
+ fc-port:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ port-direction:
+ type: string
+ logical-termination-point:
+ type: string
+
+ CONTROL_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ - alarms-1-0:alarm-pac
+ - equipment
+ - firmware-1-0:firmware-collection
+ - profile-collection
+ - logical-termination-point
+ properties:
+ uuid:
+ type: string
+ alarms-1-0:alarm-pac:
+ $ref: '#/components/schemas/ALARM_PAC'
+ equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EQUIPMENT'
+ firmware-1-0:firmware-collection:
+ $ref: '#/components/schemas/FIRMWARE_COLLECTION'
+ profile-collection:
+ $ref: '#/components/schemas/PROFILE_COLLECTION'
+ forwarding-domain:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_DOMAIN'
+ logical-termination-point:
+ type: array
+ items:
+ $ref: '#/components/schemas/LOGICAL_TERMINATION_POINT'
+
+ ALARM_PAC:
+ type: object
+ required:
+ - alarm-capability
+ - alarm-configuration
+ - current-alarms
+ - alarm-event-records
+ properties:
+ alarm-capability:
+ $ref: '#/components/schemas/ALARM_CAPABILITY'
+ alarm-configuration:
+ $ref: '#/components/schemas/ALARM_CONFIGURATION'
+ current-alarms:
+ $ref: '#/components/schemas/CURRENT_ALARMS'
+ alarm-event-records:
+ $ref: '#/components/schemas/ALARM_EVENT_RECORDS'
+ ALARM_CAPABILITY:
+ type: object
+ ALARM_CONFIGURATION:
+ type: object
+ CURRENT_ALARMS:
+ type: object
+ ALARM_EVENT_RECORDS:
+ type: object
+
+ EQUIPMENT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ connector:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONNECTOR'
+ contained-holder:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONTAINED_HOLDER'
+ expected-equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EXPECTED_EQUIPMENT'
+ actual-equipment:
+ type: object
+ CONNECTOR:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ CONTAINED_HOLDER:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ EXPECTED_EQUIPMENT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ ACTUAL_EQUIPMENT:
+ type: object
+
+ FIRMWARE_COLLECTION:
+ type: object
+ required:
+ - firmware-component-list
+ properties:
+ firmware-component-list:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_LIST'
+ FIRMWARE_COMPONENT_LIST:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - firmware-component-pac
+ properties:
+ local-id:
+ type: string
+ firmware-component-pac:
+ type: object
+ required:
+ - firmware-component-capability
+ - firmware-component-status
+ properties:
+ firmware-component-capability:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_CAPABILITY'
+ firmware-component-status:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_STATUS'
+ FIRMWARE_COMPONENT_CAPABILITY:
+ type: object
+ FIRMWARE_COMPONENT_STATUS:
+ type: object
+
+ PROFILE_COLLECTION:
+ type: object
+ required:
+ - profile
+ properties:
+ profile:
+ type: array
+ items:
+ $ref: '#/components/schemas/PROFILE'
+ PROFILE:
+ oneOf:
+ - description: 'co-channel-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - co-channel-profile-1-0:co-channel-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'co-channel-profile-1-0:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE'
+ co-channel-profile-1-0:co-channel-profile-pac:
+ type: object
+ required:
+ - co-channel-profile-capability
+ - co-channel-profile-configuration
+ properties:
+ co-channel-profile-capability:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CAPABILITY'
+ co-channel-profile-configuration:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CONFIGURATION'
+ - description: 'policing-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - policing-profile-1-0:policing-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'policing-profile-1-0:PROFILE_NAME_TYPE_POLICING_PROFILE'
+ policing-profile-1-0:policing-profile-pac:
+ type: object
+ required:
+ - policing-profile-capability
+ - policing-profile-configuration
+ properties:
+ policing-profile-capability:
+ $ref: '#/components/schemas/POLICING_PROFILE_CAPABILITY'
+ policing-profile-configuration:
+ $ref: '#/components/schemas/POLICING_PROFILE_CONFIGURATION'
+ - description: 'qos-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - qos-profile-1-0:qos-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'qos-profile-1-0:PROFILE_NAME_TYPE_QOS_PROFILE'
+ qos-profile-1-0:qos-profile-pac:
+ type: object
+ required:
+ - qos-profile-capability
+ - qos-profile-configuration
+ properties:
+ qos-profile-capability:
+ $ref: '#/components/schemas/QOS_PROFILE_CAPABILITY'
+ qos-profile-configuration:
+ $ref: '#/components/schemas/QOS_PROFILE_CONFIGURATION'
+ - description: 'scheduler-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - scheduler-profile-1-0:scheduler-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'scheduler-profile-1-0:PROFILE_NAME_TYPE_SCHEDULER_PROFILE'
+ scheduler-profile-1-0:scheduler-profile-pac:
+ type: object
+ required:
+ - scheduler-profile-capability
+ - scheduler-profile-configuration
+ properties:
+ scheduler-profile-capability:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CAPABILITY'
+ scheduler-profile-configuration:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CONFIGURATION'
+ - description: 'wred-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-profile-1-0:wred-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-profile-1-0:PROFILE_NAME_TYPE_WRED_PROFILE'
+ wred-profile-1-0:wred-profile-pac:
+ type: object
+ required:
+ - wred-profile-capability
+ - wred-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_PROFILE_CONFIGURATION'
+ - description: 'wred-template-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-template-profile-1-0:wred-template-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-template-profile-1-0:PROFILE_NAME_TYPE_WRED_TEMPLATE_PROFILE'
+ wred-template-profile-1-0:wred-template-profile-pac:
+ type: object
+ required:
+ - wred-template-profile-capability
+ - wred-template-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CONFIGURATION'
+ CO_CHANNEL_PROFILE_CAPABILITY:
+ type: object
+ CO_CHANNEL_PROFILE_CONFIGURATION:
+ type: object
+ POLICING_PROFILE_CAPABILITY:
+ type: object
+ POLICING_PROFILE_CONFIGURATION:
+ type: object
+ QOS_PROFILE_CAPABILITY:
+ type: object
+ QOS_PROFILE_CONFIGURATION:
+ type: object
+ SCHEDULER_PROFILE_CAPABILITY:
+ type: object
+ SCHEDULER_PROFILE_CONFIGURATION:
+ type: object
+ WRED_PROFILE_CAPABILITY:
+ type: object
+ WRED_PROFILE_CONFIGURATION:
+ type: object
+ WRED_TEMPLATE_PROFILE_CAPABILITY:
+ type: object
+ WRED_TEMPLATE_PROFILE_CONFIGURATION:
+ type: object
+
+ LOGICAL_TERMINATION_POINT:
+ type: object
+ required:
+ - uuid
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-augment-1-0:ltp-augment-pac:
+ $ref: '#/components/schemas/LTP_AUGMENT_PAC'
+ embedded-clock:
+ type: array
+ items:
+ $ref: '#/components/schemas/EMBEDDED_CLOCK'
+ layer-protocol:
+ type: array
+ items:
+ $ref: '#/components/schemas/LAYER_PROTOCOL'
+ LTP_AUGMENT_PAC:
+ type: object
+ EMBEDDED_CLOCK:
+ type: object
+ LAYER_PROTOCOL:
+ oneOf:
+ - description: 'air-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - air-interface-2-0:air-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ air-interface-2-0:air-interface-pac:
+ $ref: '#/components/schemas/AIR_INTERFACE_PAC'
+ - description: 'ethernet-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ethernet-container-2-0:ethernet-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER'
+ ethernet-container-2-0:ethernet-container-pac:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_PAC'
+ - description: 'hybrid-mw-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - hybrid-mw-structure-2-0:hybrid-mw-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER'
+ hybrid-mw-structure-2-0:hybrid-mw-structure-pac:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_PAC'
+ - description: 'mac-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - mac-interface-1-0:mac-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER'
+ mac-interface-1-0:mac-interface-pac:
+ $ref: '#/components/schemas/MAC_INTERFACE_PAC'
+ - description: 'pure-ethernet-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - pure-ethernet-structure-2-0:pure-ethernet-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER'
+ pure-ethernet-structure-2-0:pure-ethernet-structure-pac:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_PAC'
+ - description: 'vlan-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - vlan-interface-1-0:vlan-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER'
+ vlan-interface-1-0:vlan-interface-pac:
+ $ref: '#/components/schemas/VLAN_INTERFACE_PAC'
+ - description: 'wire-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - wire-interface-2-0:wire-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER'
+ wire-interface-2-0:wire-interface-pac:
+ $ref: '#/components/schemas/WIRE_INTERFACE_PAC'
+ - description: 'ip-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ip-interface-1-0:ip-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER'
+ ip-interface-1-0:ip-interface-pac:
+ $ref: '#/components/schemas/IP_INTERFACE_PAC'
+ - description: 'tdm-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tdm-container-2-0:tdm-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER'
+ tdm-container-2-0:tdm-container-pac:
+ $ref: '#/components/schemas/TDM_CONTAINER_PAC'
+ FORWARDING_DOMAIN:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT'
+ FORWARDING_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT_PORT'
+ FORWARDING_CONSTRUCT_PORT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ LINK:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+ LINK_PORT:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+
+ AIR_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-historical-performances
+ additionalProperties: false
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-current-performance
+ - air-interface-historical-performances
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-current-performance:
+ $ref: '#/components/schemas/AIR_INTERFACE_CURRENT_PERFORMANCE'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ AIR_INTERFACE_CAPABILITY:
+ type: object
+ AIR_INTERFACE_CONFIGURATION:
+ type: object
+ AIR_INTERFACE_STATUS:
+ type: object
+ AIR_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ AIR_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ ETHERNET_CONTAINER_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-historical-performances
+ additionalProperties: false
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-current-performance
+ - ethernet-container-historical-performances
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-current-performance:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CURRENT_PERFORMANCE'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ ETHERNET_CONTAINER_CAPABILITY:
+ type: object
+ ETHERNET_CONTAINER_CONFIGURATION:
+ type: object
+ ETHERNET_CONTAINER_STATUS:
+ type: object
+ ETHERNET_CONTAINER_CURRENT_PERFORMANCE:
+ type: object
+ ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES:
+ type: object
+
+ HYBRID_MW_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-historical-performances
+ additionalProperties: false
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-current-performance
+ - hybrid-mw-structure-historical-performances
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-current-performance:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ HYBRID_MW_STRUCTURE_CAPABILITY:
+ type: object
+ HYBRID_MW_STRUCTURE_CONFIGURATION:
+ type: object
+ HYBRID_MW_STRUCTURE_STATUS:
+ type: object
+ HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ MAC_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ - description: 'live'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ MAC_INTERFACE_CAPABILITY:
+ type: object
+ MAC_INTERFACE_CONFIGURATION:
+ type: object
+ MAC_INTERFACE_STATUS:
+ type: object
+
+ PURE_ETHERNET_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-historical-performances
+ additionalProperties: false
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-current-performance
+ - pure-ethernet-structure-historical-performances
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-current-performance:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ PURE_ETHERNET_STRUCTURE_CAPABILITY:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CONFIGURATION:
+ type: object
+ PURE_ETHERNET_STRUCTURE_STATUS:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ VLAN_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ additionalProperties: false
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ - description: 'live'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ VLAN_INTERFACE_CAPABILITY:
+ type: object
+ VLAN_INTERFACE_CONFIGURATION:
+ type: object
+
+ WIRE_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-historical-performances
+ additionalProperties: false
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-current-performance
+ - wire-interface-historical-performances
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-current-performance:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CURRENT_PERFORMANCE'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ WIRE_INTERFACE_CAPABILITY:
+ type: object
+ WIRE_INTERFACE_CONFIGURATION:
+ type: object
+ WIRE_INTERFACE_STATUS:
+ type: object
+ WIRE_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ WIRE_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+ IP_INTERFACE_PAC:
+ type: object
+ required:
+ - ip-interface-capability
+ - ip-interface-configuration
+ - ip-interface-status
+ properties:
+ ip-interface-capability:
+ $ref: '#/components/schemas/IP_INTERFACE_CAPABILITY'
+ ip-interface-configuration:
+ $ref: '#/components/schemas/IP_INTERFACE_CONFIGURATION'
+ ip-interface-status:
+ $ref: '#/components/schemas/IP_INTERFACE_STATUS'
+ IP_INTERFACE_CAPABILITY:
+ type: object
+ IP_INTERFACE_CONFIGURATION:
+ type: object
+ IP_INTERFACE_STATUS:
+ type: object
+
+ TDM_CONTAINER_PAC:
+ type: object
+ required:
+ - tdm-container-capability
+ - tdm-container-configuration
+ - tdm-container-status
+ properties:
+ tdm-container-capability:
+ $ref: '#/components/schemas/TDM_CONTAINER_CAPABILITY'
+ tdm-container-configuration:
+ $ref: '#/components/schemas/TDM_CONTAINER_CONFIGURATION'
+ tdm-container-status:
+ $ref: '#/components/schemas/TDM_CONTAINER_STATUS'
+ TDM_CONTAINER_CAPABILITY:
+ type: object
+ TDM_CONTAINER_CONFIGURATION:
+ type: object
+ TDM_CONTAINER_STATUS:
+ type: object
+
+ securitySchemes:
+ apiKeyAuth:
+ type: apiKey
+ in: header
+ name: operation-key
+ basicAuth:
+ type: http
+ scheme: basic
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/README.md b/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/README.md
new file mode 100644
index 00000000..cead9b06
--- /dev/null
+++ b/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/README.md
@@ -0,0 +1,12 @@
+# Functional Testing of Unknown Target Object (in RequestBody) Handling of the Providers of Data
+
+
+
+Services are not tested here, if they either do not have a requestBody or if the requestBody does not contain properties for target object filtering.
+This applies to the following services:
+- /v1/provide-list-of-connected-devices
+- /v1/provide-list-of-links
+- /v1/provide-data-of-all-links
+- /v1/provide-list-of-link-ports
+- /v1/provide-list-of-link-ports
+- /v1/provide-data-of-all-link-ports
\ No newline at end of file
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/mwdi+data.unknownTargetObject.json b/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/mwdi+data.unknownTargetObject.json
new file mode 100644
index 00000000..51ace55d
--- /dev/null
+++ b/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/mwdi+data.unknownTargetObject.json
@@ -0,0 +1,52 @@
+[
+ {
+ "mode": "debug",
+ "serverList": [
+ {
+ "serverName": "dummy",
+ "dummyUri": "ping.openBackhaul.com"
+ },
+ {
+ "serverName": "mwdi",
+ "server": "http://IP_ADRESS:PORT",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "YOUR_BASIC_AUTH_CODE",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "mwdi in mwdi+simulator.unknownTargetObject.dataprovider",
+ "server": "http://localhost:3014",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ }
+ ],
+ "collectionInputList": [
+ {
+ "collectionName": "unknownTargetObject.dataprovider",
+ "serverToBeApplied": "mwdi",
+ "mountName": "parameter not used in testcase collection",
+ "linkId": "parameter not used in testcase collection",
+ "kindOfReference": "dynamic"
+ },
+ {
+ "collectionName": "unknownTargetObject.dataprovider_simulator",
+ "serverToBeApplied": "mwdi in mwdi+simulator.unknownTargetObject.dataprovider",
+ "mountName": "parameter not used in testcase collection",
+ "linkId": "parameter not used in testcase collection",
+ "kindOfReference": "static",
+ "suffixUrlEncodingIsRequired": true
+ }
+ ]
+ }
+]
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/mwdi+diagram.unknownTargetObject.dataprovider.plantuml b/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/mwdi+diagram.unknownTargetObject.dataprovider.plantuml
new file mode 100644
index 00000000..eb234f67
--- /dev/null
+++ b/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/mwdi+diagram.unknownTargetObject.dataprovider.plantuml
@@ -0,0 +1,62 @@
+@startuml mwdi+diagram.unknownTargetObject.dataprovider
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.unknownTargetObject.dataprovider
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+participant "/v1/provide-list-of-device-interfaces" as PLODI
+participant "/v1/provide-list-of-actual-device-equipment" as PLOADE
+participant "/v1/provide-list-of-parallel-links" as PLOPL
+participant "/v1/provide-device-status-metadata" as PDSM
+
+
+group Preparation
+ Data --\\o Postman : {servers, mount-name, linkd-id}
+ activate Postman
+ Postman --\\o Collection : {servers, mount-name, link-id}
+end
+
+group /v1/provide-list-of-device-interfaces
+ Collection --\\o Postman : {servers, mount-name}
+ Postman -> PLODI : {mount-name}
+ Postman <-- PLODI : 460
+ note right Postman #Orange
+ check for 460
+ end note
+end
+
+group /v1/provide-list-of-actual-device-equipment
+ Collection --\\o Postman : {servers, mount-name}
+ Postman -> PLOADE : {mount-name}
+ Postman <-- PLOADE : 460
+ note right Postman #Orange
+ check for 460
+ end note
+end
+
+group /v1/provide-list-of-parallel-links
+ Collection --\\o Postman : {servers, link-id}
+ Postman -> PLOPL : {link-id}
+ Postman <-- PLOPL : 461
+ note right Postman #Orange
+ check for 461
+ end note
+end
+
+group /v1/provide-device-status-metadata
+ Collection --\\o Postman : {servers, mount-name}
+ Postman -> PDSM : {mount-name}
+ Postman <-- PDSM : 460
+ note right Postman #Orange
+ check for 460
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/mwdi+diagram.unknownTargetObject.dataprovider.png b/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/mwdi+diagram.unknownTargetObject.dataprovider.png
new file mode 100644
index 00000000..c5c84e86
Binary files /dev/null and b/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/mwdi+diagram.unknownTargetObject.dataprovider.png differ
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/mwdi+testcase.unknownTargetObject.dataprovider.json b/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/mwdi+testcase.unknownTargetObject.dataprovider.json
new file mode 100644
index 00000000..35432a58
--- /dev/null
+++ b/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/mwdi+testcase.unknownTargetObject.dataprovider.json
@@ -0,0 +1,1391 @@
+{
+ "info": {
+ "name": "mwdi+testcase.unknownTargetObject.dataproviders",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "UserInput",
+ "item": [
+ {
+ "name": "for loading user input",
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "exec": [
+ "console.clear();\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "logger.struc(\"===== mwdi+testcase.unknownTargetObject.dataprovider ==========================\");\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Loading Input Data from File\r",
+ "****************************************************************************************/\r",
+ "var inputFromFile;\r",
+ "try {\r",
+ " inputFromFile = data\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Input data could not be loaded.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Environmental Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.environment.clear();\r",
+ "\r",
+ " let mode;\r",
+ " mode = inputFromFile.mode;\r",
+ " // Mode to be applied while running this testcase collection \r",
+ " // \"analysis\" -> human does detailed analysis of response bodies etc.\r",
+ " // \"testing\" -> automated approval based on binary result\r",
+ " // \"debugging\" -> support for programming the testcase collection\r",
+ "\r",
+ " let logLevel;\r",
+ " switch(mode) {\r",
+ " case \"debugging\":\r",
+ " logLevel = \"debug\";\r",
+ " break;\r",
+ " case \"analysis\":\r",
+ " logLevel = \"log\";\r",
+ " break;\r",
+ " case \"testing\":\r",
+ " logLevel = \"error\";\r",
+ " break;\r",
+ " default:\r",
+ " logLevel = \"debug\";\r",
+ " };\r",
+ " // Level of detail of the logging; find more info in pre-request script on the collection's level\r",
+ "\r",
+ " let serverList = [];\r",
+ " serverList = inputFromFile.serverList;\r",
+ " // list of addresses of applications, controllers etc.\r",
+ " // serverName : key attribute for identifying the servers\r",
+ " // dummyUri : http address that shall be addressed by bare processing Requests\r",
+ " // server : part of the URI that is comprised from protocol, IP address and TCP port\r",
+ " // pathToControlConstruct : part of the URI that is identical for all Requests that are addressing into the device's data tree\r",
+ " // authorizationCode : authentication that has to be sent in case of BasicAuth protection (e.g. OpenDaylight NBI)\r",
+ " // operationKey : ApiKey that has to be sent in case of addressing a MW SDN application (e.g. MicroWaveDeviceInventory)\r",
+ " // userName : user header to be sent in case of addressing a MW SDN application\r",
+ " // originator : originator header to be sent in case of addressing a MW SDN application\r",
+ " // xCorrelator : x-correlator header to be sent in case of addressing a MW SDN application\r",
+ " // traceIndicator : trace-indicator header to be sent in case of addressing a MW SDN application\r",
+ " // customerJourney : customer-journey header to be sent in case of addressing a MW SDN application\r",
+ "\r",
+ " let collectionInputList = [];\r",
+ " collectionInputList = inputFromFile.collectionInputList;\r",
+ " // list of inputs to individual test case collections\r",
+ " // serverToBeApplied : server that shall be addressed in the respective request/test case\r",
+ " // mountName : mountName of the device that is to be validated\r",
+ " // uuid of the object that is to be validated\r",
+ " // localId of the object that is to be validated\r",
+ " // linkId : linkName of the link that is to be validated\r",
+ " // linkPort : id of the linkPort that is to be validated\r",
+ "\r",
+ " pm.environment.set(\"mode\", mode);\r",
+ " pm.environment.set(\"logLevel\", logLevel);\r",
+ " pm.environment.set(\"serverList\", serverList);\r",
+ " pm.environment.set(\"collectionInputList\", collectionInputList);\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Environment variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Collection Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.collectionVariables.clear()\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Collection variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Local Variables and Preparing the Request\r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " let uri;\r",
+ " let dummyServerInfo;\r",
+ " dummyServerInfo = ExtractServerInformation(inputFromFile.serverList, \"dummy\");\r",
+ " uri = dummyServerInfo.dummyUri;\r",
+ "\r",
+ " pm.variables.clear();\r",
+ "\r",
+ " pm.variables.set(\"uri\", uri);\r",
+ "\r",
+ " pm.request.headers.upsert({ key: \"Accept\", value: \"application/json\" });\r",
+ " pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" })\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Local variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Functions\r",
+ "****************************************************************************************/\r",
+ "function ExtractServerInformation(serverList, searchedServerName) {\r",
+ " try {\r",
+ " for(let i=0; i log -> info -> warn -> error -> struc -> none",
+ "// It creates \"logger\" global variable which can be used anywhere in nested collection scripts",
+ "",
+ "const logLevels = [\"debug\", \"log\", \"info\", \"warn\", \"error\", \"struc\", \"none\"];",
+ "",
+ "const shouldLog = (level) => {",
+ " return logLevels.indexOf(level) >= logLevels.indexOf(pm.environment.get(\"logLevel\"));",
+ "};",
+ "",
+ "logger = {",
+ " debug: (message, ...optionalParams) => {",
+ " shouldLog(\"debug\") && console.log(message, ...optionalParams);",
+ " },",
+ " log: (message, ...optionalParams) => {",
+ " shouldLog(\"log\") && console.log(message, ...optionalParams);",
+ " },",
+ " info: (message, ...optionalParams) => {",
+ " shouldLog(\"info\") && console.log(message, ...optionalParams);",
+ " },",
+ " warn: (message, ...optionalParams) => {",
+ " shouldLog(\"warn\") && console.log(message, ...optionalParams);",
+ " },",
+ " error: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.error(message, ...optionalParams);",
+ " },",
+ " struc: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.log(message, ...optionalParams);",
+ " },",
+ "};",
+ ""
+ ]
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/simulators/MicroWaveDeviceInventory+simu.unknownTargetObject.dataprovider.yaml b/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/simulators/MicroWaveDeviceInventory+simu.unknownTargetObject.dataprovider.yaml
new file mode 100644
index 00000000..72644f46
--- /dev/null
+++ b/testing/2_functional/unknownTargetObject/v1.2.2/Dataprovider/simulators/MicroWaveDeviceInventory+simu.unknownTargetObject.dataprovider.yaml
@@ -0,0 +1,1781 @@
+openapi: 3.0.0
+info:
+ title: MWDI_1.2.2+simulator.unknownTargetObject.dataprovider
+ version: 1.0.0
+
+paths:
+########################################################################################################################
+# Service Layer - Individual Part
+# MWDI_1.2.2+simulator.unknownTargetObject.dataprovider in static reference mode
+########################################################################################################################
+
+ /v1/provide-list-of-device-interfaces:
+ post:
+ operationId: provideListOfDeviceInterfaces
+ summary: 'Provides list of LTP UUIDs at a device'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - mount-name
+ properties:
+ mount-name:
+ type: string
+ responses:
+ '460':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/provide-list-of-actual-device-equipment:
+ post:
+ operationId: provideListOfActualDeviceEquipment
+ summary: 'Provides list of actual equipment UUIDs inside a device'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - mount-name
+ properties:
+ mount-name:
+ type: string
+ responses:
+ '460':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/provide-list-of-parallel-links:
+ post:
+ operationId: provideListOfParallelLinks
+ summary: 'Provides list of Links between the same ControlConstructs'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - link-id
+ properties:
+ link-id:
+ type: string
+ responses:
+ '461':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/provide-device-status-metadata:
+ post:
+ operationId: provideDeviceStatusMetadata
+ summary: 'Provides metadata status table of devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ mount-name-list:
+ type: array
+ items:
+ type: string
+ responses:
+ '460':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+########################################################################################################################
+# Common Components
+########################################################################################################################
+components:
+ parameters:
+ user:
+ name: user
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'User Name'
+ description: 'User identifier from the system starting the service call'
+ originator:
+ name: originator
+ in: header
+ required: true
+ schema:
+ type: string
+ minLength: 3
+ example: 'Resolver'
+ description: >
+ 'Identification for the system consuming the API, as defined in
+ [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]'
+ x-correlator:
+ name: x-correlator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ description: 'Empty string accepted from external applications.'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses'
+ trace-indicator:
+ name: trace-indicator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^([0-9]+)(\.([0-9]+))*$'
+ description: 'Empty string accepted from external applications.'
+ example: '1.3.1'
+ description: 'Sequence of request numbers along the flow'
+ customer-journey:
+ name: customer-journey
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'Unknown value'
+ description: 'Holds information supporting customer’s journey to which the execution applies'
+ mountName:
+ name: mountName
+ in: path
+ required: true
+ schema:
+ type: string
+ example: '222250001'
+ description: 'The mountName of the device that is addressed by the request'
+ uuid:
+ name: uuid
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within the device'
+ uuid1:
+ name: uuid1
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Another instance identifier that is unique within the device'
+ localId:
+ name: localId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within its list'
+ fields:
+ name: fields
+ in: query
+ required: false
+ schema:
+ type: string
+ example: 'node(node-id;netconf-node-topology:connection-status)'
+ description: 'Query parameter to filter ressources according to RFC8040 fields filter spec'
+ responses:
+ responseForErroredServiceRequests:
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ responseForErroredOamRequests:
+ description: 'Response in case of errored OaM requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ '429':
+ description: 'Response in case too many requests need to be executed in parallel or too many requests have been received within a time period. The maximum number of parallel requests is defined in an IntegerProfile with the service name as a prefix and MaxNumberOfParallelRequests as a suffix. Some time period to elapse for throttling incomming requests is defined in an IntegerProfile with the service name as a prefix and ThrottlingPeriod as a suffix'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 429
+ maximum: 429
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Too many requests'
+ '460':
+ description: 'Response in case the mountName provided in the request is not found in the list of connected devices'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 460
+ maximum: 460
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not connected. Requested device is currently not in connected state at the controller'
+ '461':
+ description: 'Response in case the (parent) topology object provided in the request (body or path) is not found in the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 461
+ maximum: 461
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not available. The topology (parent) object is currently not found in the cache.'
+ '470':
+ description: 'Response in case the resource specified in the request does not exist within the connected device'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 470
+ maximum: 470
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource not existing. Device informs about addressed resource unknown'
+ '471':
+ description: 'Response in case the (child) topology object specified in the request (body or path) does not exist within the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 471
+ maximum: 471
+ format: int32
+ message:
+ type: string
+ enum:
+ - '(Child) topology object not existing. Cache informs about addressed resource unknown.'
+ '502':
+ description: 'Response in case the server is acting as a gateway or proxy and received an invalid response from the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 502
+ maximum: 502
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway'
+ '530':
+ description: 'Response in case the referenced resource exists (e.g. device connected and resource exists in internal datatree), but response data is either not available, lost during transmission, incomplete or corrupted'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 530
+ maximum: 530
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Data invalid. Response data not available, incomplete or corrupted'
+ '531':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to authenticate at the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 531
+ maximum: 531
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Authentication at upstream server failed.'
+ '532':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to connect to the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 532
+ maximum: 532
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Upstream server not responding.'
+ '533':
+ description: 'Response in case the referenced resource for an connected device does not exist at the controller.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 533
+ maximum: 533
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource unknown. The resource for the connected device does not exist at the Controller.'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ life-cycle-state:
+ schema:
+ type: string
+ enum:
+ - 'EXPERIMENTAL'
+ - 'OPERATIONAL'
+ - 'DEPRECATED'
+ - 'OBSOLETE'
+ - 'UNKNOWN'
+ - 'NOT_YET_DEFINED'
+ example: 'EXPERIMENTAL'
+ schemas:
+ errorDescription:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
+ genericRepresentation:
+ type: object
+ required:
+ - response-value-list
+ - consequent-action-list
+ properties:
+ response-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ - value
+ - datatype
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Field name
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]'
+ value:
+ type: string
+ description: >
+ 'Field value
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]'
+ datatype:
+ type: string
+ description: >
+ 'Field datatype
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]'
+ consequent-action-list:
+ type: array
+ items:
+ type: object
+ required:
+ - label
+ - request
+ - display-in-new-browser-window
+ properties:
+ label:
+ type: string
+ description: >
+ 'Label that shall be presented on the button
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]'
+ request:
+ type: string
+ description: >
+ 'Request that shall be called, when button gets pressed
+ from
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}]
+ ://
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address}
+ or
+ {/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}]
+ :
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}]
+ [{/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]'
+ input-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Name of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]'
+ unit:
+ type: string
+ description: >
+ 'Unit of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]'
+ display-in-new-browser-window:
+ type: boolean
+ description: >
+ 'True in case Request shall be represented in a new browser window
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]'
+ logicalTerminationPoint:
+ type: object
+ required:
+ - uuid
+ - ltp-direction
+ - client-ltp
+ - server-ltp
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-direction:
+ type: string
+ client-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ server-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ layer-protocol:
+ type: array
+ minItems: 1
+ maxItems: 1
+ items:
+ oneOf:
+ - description: 'operation server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-server-interface-1-0:operation-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-server-interface-1-0:operation-server-interface-pac:
+ type: object
+ required:
+ - operation-server-interface-capability
+ - operation-server-interface-configuration
+ properties:
+ operation-server-interface-capability:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-server-interface-configuration:
+ type: object
+ required:
+ - life-cycle-state
+ properties:
+ life-cycle-state:
+ type: string
+ - description: 'http server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-server-interface-1-0:http-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-server-interface-1-0:http-server-interface-pac:
+ type: object
+ required:
+ - http-server-interface-capability
+ properties:
+ http-server-interface-capability:
+ type: object
+ required:
+ - application-name
+ - release-number
+ - data-update-period
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ data-update-period:
+ type: string
+ - description: 'tcp server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-server-interface-1-0:tcp-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-server-interface-1-0:tcp-server-interface-pac:
+ type: object
+ required:
+ - tcp-server-interface-configuration
+ properties:
+ tcp-server-interface-configuration:
+ type: object
+ required:
+ - description
+ - local-protocol
+ - local-address
+ - local-port
+ properties:
+ description:
+ type: string
+ local-protocol:
+ type: string
+ local-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ local-port:
+ type: integer
+ - description: 'operation client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-client-interface-1-0:operation-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-client-interface-1-0:operation-client-interface-pac:
+ type: object
+ required:
+ - operation-client-interface-configuration
+ - operation-client-interface-status
+ properties:
+ operation-client-interface-configuration:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'elasticsearch client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac:
+ type: object
+ required:
+ - elasticsearch-client-interface-configuration
+ - elasticsearch-client-interface-status
+ properties:
+ elasticsearch-client-interface-configuration:
+ type: object
+ required:
+ - index-alias
+ properties:
+ index-alias:
+ type: string
+ elasticsearch-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'http client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-client-interface-1-0:http-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-client-interface-1-0:http-client-interface-pac:
+ type: object
+ required:
+ - http-client-interface-configuration
+ properties:
+ http-client-interface-configuration:
+ type: object
+ required:
+ - application-name
+ - release-number
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ - description: 'tcp client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-client-interface-1-0:tcp-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-client-interface-1-0:tcp-client-interface-pac:
+ type: object
+ required:
+ - tcp-client-interface-configuration
+ properties:
+ tcp-client-interface-configuration:
+ type: object
+ required:
+ - remote-protocol
+ - remote-address
+ - remote-port
+ properties:
+ remote-protocol:
+ type: string
+ remote-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ remote-port:
+ type: integer
+ forwardingDomain:
+ type: object
+ required:
+ - uuid
+ - forwarding-construct
+ properties:
+ uuid:
+ type: string
+ forwarding-construct:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - name
+ - fc-port
+ properties:
+ uuid:
+ type: string
+ name:
+ type: array
+ items:
+ type: object
+ required:
+ - value-name
+ - value
+ properties:
+ value-name:
+ type: string
+ value:
+ type: string
+ fc-port:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ port-direction:
+ type: string
+ logical-termination-point:
+ type: string
+
+ CONTROL_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ - alarms-1-0:alarm-pac
+ - equipment
+ - firmware-1-0:firmware-collection
+ - profile-collection
+ - logical-termination-point
+ properties:
+ uuid:
+ type: string
+ alarms-1-0:alarm-pac:
+ $ref: '#/components/schemas/ALARM_PAC'
+ equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EQUIPMENT'
+ firmware-1-0:firmware-collection:
+ $ref: '#/components/schemas/FIRMWARE_COLLECTION'
+ profile-collection:
+ $ref: '#/components/schemas/PROFILE_COLLECTION'
+ forwarding-domain:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_DOMAIN'
+ logical-termination-point:
+ type: array
+ items:
+ $ref: '#/components/schemas/LOGICAL_TERMINATION_POINT'
+
+ ALARM_PAC:
+ type: object
+ required:
+ - alarm-capability
+ - alarm-configuration
+ - current-alarms
+ - alarm-event-records
+ properties:
+ alarm-capability:
+ $ref: '#/components/schemas/ALARM_CAPABILITY'
+ alarm-configuration:
+ $ref: '#/components/schemas/ALARM_CONFIGURATION'
+ current-alarms:
+ $ref: '#/components/schemas/CURRENT_ALARMS'
+ alarm-event-records:
+ $ref: '#/components/schemas/ALARM_EVENT_RECORDS'
+ ALARM_CAPABILITY:
+ type: object
+ ALARM_CONFIGURATION:
+ type: object
+ CURRENT_ALARMS:
+ type: object
+ ALARM_EVENT_RECORDS:
+ type: object
+
+ EQUIPMENT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ connector:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONNECTOR'
+ contained-holder:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONTAINED_HOLDER'
+ expected-equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EXPECTED_EQUIPMENT'
+ actual-equipment:
+ type: object
+ CONNECTOR:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ CONTAINED_HOLDER:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ EXPECTED_EQUIPMENT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ ACTUAL_EQUIPMENT:
+ type: object
+
+ FIRMWARE_COLLECTION:
+ type: object
+ required:
+ - firmware-component-list
+ properties:
+ firmware-component-list:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_LIST'
+ FIRMWARE_COMPONENT_LIST:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - firmware-component-pac
+ properties:
+ local-id:
+ type: string
+ firmware-component-pac:
+ type: object
+ required:
+ - firmware-component-capability
+ - firmware-component-status
+ properties:
+ firmware-component-capability:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_CAPABILITY'
+ firmware-component-status:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_STATUS'
+ FIRMWARE_COMPONENT_CAPABILITY:
+ type: object
+ FIRMWARE_COMPONENT_STATUS:
+ type: object
+
+ PROFILE_COLLECTION:
+ type: object
+ required:
+ - profile
+ properties:
+ profile:
+ type: array
+ items:
+ $ref: '#/components/schemas/PROFILE'
+ PROFILE:
+ oneOf:
+ - description: 'co-channel-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - co-channel-profile-1-0:co-channel-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'co-channel-profile-1-0:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE'
+ co-channel-profile-1-0:co-channel-profile-pac:
+ type: object
+ required:
+ - co-channel-profile-capability
+ - co-channel-profile-configuration
+ properties:
+ co-channel-profile-capability:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CAPABILITY'
+ co-channel-profile-configuration:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CONFIGURATION'
+ - description: 'policing-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - policing-profile-1-0:policing-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'policing-profile-1-0:PROFILE_NAME_TYPE_POLICING_PROFILE'
+ policing-profile-1-0:policing-profile-pac:
+ type: object
+ required:
+ - policing-profile-capability
+ - policing-profile-configuration
+ properties:
+ policing-profile-capability:
+ $ref: '#/components/schemas/POLICING_PROFILE_CAPABILITY'
+ policing-profile-configuration:
+ $ref: '#/components/schemas/POLICING_PROFILE_CONFIGURATION'
+ - description: 'qos-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - qos-profile-1-0:qos-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'qos-profile-1-0:PROFILE_NAME_TYPE_QOS_PROFILE'
+ qos-profile-1-0:qos-profile-pac:
+ type: object
+ required:
+ - qos-profile-capability
+ - qos-profile-configuration
+ properties:
+ qos-profile-capability:
+ $ref: '#/components/schemas/QOS_PROFILE_CAPABILITY'
+ qos-profile-configuration:
+ $ref: '#/components/schemas/QOS_PROFILE_CONFIGURATION'
+ - description: 'scheduler-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - scheduler-profile-1-0:scheduler-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'scheduler-profile-1-0:PROFILE_NAME_TYPE_SCHEDULER_PROFILE'
+ scheduler-profile-1-0:scheduler-profile-pac:
+ type: object
+ required:
+ - scheduler-profile-capability
+ - scheduler-profile-configuration
+ properties:
+ scheduler-profile-capability:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CAPABILITY'
+ scheduler-profile-configuration:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CONFIGURATION'
+ - description: 'wred-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-profile-1-0:wred-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-profile-1-0:PROFILE_NAME_TYPE_WRED_PROFILE'
+ wred-profile-1-0:wred-profile-pac:
+ type: object
+ required:
+ - wred-profile-capability
+ - wred-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_PROFILE_CONFIGURATION'
+ - description: 'wred-template-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-template-profile-1-0:wred-template-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-template-profile-1-0:PROFILE_NAME_TYPE_WRED_TEMPLATE_PROFILE'
+ wred-template-profile-1-0:wred-template-profile-pac:
+ type: object
+ required:
+ - wred-template-profile-capability
+ - wred-template-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CONFIGURATION'
+ CO_CHANNEL_PROFILE_CAPABILITY:
+ type: object
+ CO_CHANNEL_PROFILE_CONFIGURATION:
+ type: object
+ POLICING_PROFILE_CAPABILITY:
+ type: object
+ POLICING_PROFILE_CONFIGURATION:
+ type: object
+ QOS_PROFILE_CAPABILITY:
+ type: object
+ QOS_PROFILE_CONFIGURATION:
+ type: object
+ SCHEDULER_PROFILE_CAPABILITY:
+ type: object
+ SCHEDULER_PROFILE_CONFIGURATION:
+ type: object
+ WRED_PROFILE_CAPABILITY:
+ type: object
+ WRED_PROFILE_CONFIGURATION:
+ type: object
+ WRED_TEMPLATE_PROFILE_CAPABILITY:
+ type: object
+ WRED_TEMPLATE_PROFILE_CONFIGURATION:
+ type: object
+
+ LOGICAL_TERMINATION_POINT:
+ type: object
+ required:
+ - uuid
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-augment-1-0:ltp-augment-pac:
+ $ref: '#/components/schemas/LTP_AUGMENT_PAC'
+ embedded-clock:
+ type: array
+ items:
+ $ref: '#/components/schemas/EMBEDDED_CLOCK'
+ layer-protocol:
+ type: array
+ items:
+ $ref: '#/components/schemas/LAYER_PROTOCOL'
+ LTP_AUGMENT_PAC:
+ type: object
+ EMBEDDED_CLOCK:
+ type: object
+ LAYER_PROTOCOL:
+ oneOf:
+ - description: 'air-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - air-interface-2-0:air-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ air-interface-2-0:air-interface-pac:
+ $ref: '#/components/schemas/AIR_INTERFACE_PAC'
+ - description: 'ethernet-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ethernet-container-2-0:ethernet-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER'
+ ethernet-container-2-0:ethernet-container-pac:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_PAC'
+ - description: 'hybrid-mw-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - hybrid-mw-structure-2-0:hybrid-mw-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER'
+ hybrid-mw-structure-2-0:hybrid-mw-structure-pac:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_PAC'
+ - description: 'mac-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - mac-interface-1-0:mac-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER'
+ mac-interface-1-0:mac-interface-pac:
+ $ref: '#/components/schemas/MAC_INTERFACE_PAC'
+ - description: 'pure-ethernet-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - pure-ethernet-structure-2-0:pure-ethernet-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER'
+ pure-ethernet-structure-2-0:pure-ethernet-structure-pac:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_PAC'
+ - description: 'vlan-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - vlan-interface-1-0:vlan-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER'
+ vlan-interface-1-0:vlan-interface-pac:
+ $ref: '#/components/schemas/VLAN_INTERFACE_PAC'
+ - description: 'wire-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - wire-interface-2-0:wire-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER'
+ wire-interface-2-0:wire-interface-pac:
+ $ref: '#/components/schemas/WIRE_INTERFACE_PAC'
+ - description: 'ip-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ip-interface-1-0:ip-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER'
+ ip-interface-1-0:ip-interface-pac:
+ $ref: '#/components/schemas/IP_INTERFACE_PAC'
+ - description: 'tdm-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tdm-container-2-0:tdm-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER'
+ tdm-container-2-0:tdm-container-pac:
+ $ref: '#/components/schemas/TDM_CONTAINER_PAC'
+ FORWARDING_DOMAIN:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT'
+ FORWARDING_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT_PORT'
+ FORWARDING_CONSTRUCT_PORT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ LINK:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+ LINK_PORT:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+
+ AIR_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-historical-performances
+ additionalProperties: false
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-current-performance
+ - air-interface-historical-performances
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-current-performance:
+ $ref: '#/components/schemas/AIR_INTERFACE_CURRENT_PERFORMANCE'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ AIR_INTERFACE_CAPABILITY:
+ type: object
+ AIR_INTERFACE_CONFIGURATION:
+ type: object
+ AIR_INTERFACE_STATUS:
+ type: object
+ AIR_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ AIR_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ ETHERNET_CONTAINER_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-historical-performances
+ additionalProperties: false
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-current-performance
+ - ethernet-container-historical-performances
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-current-performance:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CURRENT_PERFORMANCE'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ ETHERNET_CONTAINER_CAPABILITY:
+ type: object
+ ETHERNET_CONTAINER_CONFIGURATION:
+ type: object
+ ETHERNET_CONTAINER_STATUS:
+ type: object
+ ETHERNET_CONTAINER_CURRENT_PERFORMANCE:
+ type: object
+ ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES:
+ type: object
+
+ HYBRID_MW_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-historical-performances
+ additionalProperties: false
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-current-performance
+ - hybrid-mw-structure-historical-performances
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-current-performance:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ HYBRID_MW_STRUCTURE_CAPABILITY:
+ type: object
+ HYBRID_MW_STRUCTURE_CONFIGURATION:
+ type: object
+ HYBRID_MW_STRUCTURE_STATUS:
+ type: object
+ HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ MAC_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ - description: 'live'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ MAC_INTERFACE_CAPABILITY:
+ type: object
+ MAC_INTERFACE_CONFIGURATION:
+ type: object
+ MAC_INTERFACE_STATUS:
+ type: object
+
+ PURE_ETHERNET_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-historical-performances
+ additionalProperties: false
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-current-performance
+ - pure-ethernet-structure-historical-performances
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-current-performance:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ PURE_ETHERNET_STRUCTURE_CAPABILITY:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CONFIGURATION:
+ type: object
+ PURE_ETHERNET_STRUCTURE_STATUS:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ VLAN_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ additionalProperties: false
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ - description: 'live'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ VLAN_INTERFACE_CAPABILITY:
+ type: object
+ VLAN_INTERFACE_CONFIGURATION:
+ type: object
+
+ WIRE_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-historical-performances
+ additionalProperties: false
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-current-performance
+ - wire-interface-historical-performances
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-current-performance:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CURRENT_PERFORMANCE'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ WIRE_INTERFACE_CAPABILITY:
+ type: object
+ WIRE_INTERFACE_CONFIGURATION:
+ type: object
+ WIRE_INTERFACE_STATUS:
+ type: object
+ WIRE_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ WIRE_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+ IP_INTERFACE_PAC:
+ type: object
+ required:
+ - ip-interface-capability
+ - ip-interface-configuration
+ - ip-interface-status
+ properties:
+ ip-interface-capability:
+ $ref: '#/components/schemas/IP_INTERFACE_CAPABILITY'
+ ip-interface-configuration:
+ $ref: '#/components/schemas/IP_INTERFACE_CONFIGURATION'
+ ip-interface-status:
+ $ref: '#/components/schemas/IP_INTERFACE_STATUS'
+ IP_INTERFACE_CAPABILITY:
+ type: object
+ IP_INTERFACE_CONFIGURATION:
+ type: object
+ IP_INTERFACE_STATUS:
+ type: object
+
+ TDM_CONTAINER_PAC:
+ type: object
+ required:
+ - tdm-container-capability
+ - tdm-container-configuration
+ - tdm-container-status
+ properties:
+ tdm-container-capability:
+ $ref: '#/components/schemas/TDM_CONTAINER_CAPABILITY'
+ tdm-container-configuration:
+ $ref: '#/components/schemas/TDM_CONTAINER_CONFIGURATION'
+ tdm-container-status:
+ $ref: '#/components/schemas/TDM_CONTAINER_STATUS'
+ TDM_CONTAINER_CAPABILITY:
+ type: object
+ TDM_CONTAINER_CONFIGURATION:
+ type: object
+ TDM_CONTAINER_STATUS:
+ type: object
+
+ securitySchemes:
+ apiKeyAuth:
+ type: apiKey
+ in: header
+ name: operation-key
+ basicAuth:
+ type: http
+ scheme: basic
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/README.md b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/README.md
new file mode 100644
index 00000000..a0b48ad4
--- /dev/null
+++ b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/README.md
@@ -0,0 +1,28 @@
+# Functional Testing of Unknown Target Object (in RequestBody) Handling of the Receivers
+
+
+
+Notes:
+- (1) `/v1/regard-controller-attribute-value-change`: for both known and unknown mount-names a 204 is returned
+- (2) `/v1/regard-device-attribute-value-change`: 500 expected
+ - the mount-name is provided by the Controller/device itself, not by a 3rd party application or a user, therefore the provided mount-name can be considered valid
+ - if it is not known by MWDI then this is not a client/caller error (400), but a MWDI (i.e. server) error
+- (3) `/v1/regard-device-alarm`: 500 expected
+ - same logic as for (2), the provided object-path should be found in MWDI, if not it is an MWDI error (5xx), not a client error (400)
+- (4) `/v1/regard-device-object-deletion`:
+ - (4.1) unknown mount-name: 500 expected
+ - same logic as (2) and (3)
+ - (4.2) known mount-name, but unknown class in object-path: 533 expected
+- (5) `/v1/regard-device-object-creation`
+ - (5.1) unknown mount-name: 404 expected
+ - this is different from (2)-(4), as here upon receipt data for the provided object-path is read from the live network and then written to the MWDI cache
+ - normally the object-path should not be invalid (as directly provided by the Controller/device), but it's e.g. possible that until the notification is processed the device e.g. goes into disconnected state or that e.g. the created object was created by mistake and had already been deleted again
+ - as the data has first to be read from the live network, an error is to be considered a client 4xx error
+ - note: theoretically the controlConstruct for the device could also be unknown in MWDI cache, but this case is not considered here
+ - (5.2) known mount-name, but unknown class in object-path: 404 expected
+
+Note:
+- testing both (4.1) and (4.2) with the same simulator is not possible, as the simulators currently only return a single fixed answer
+- therefore two separate simulators are provided:
+ - `MicroWaveDeviceInventory+simu.unknownTargetObject.unknownMountName.receiver.yaml`: for all tests except (4.2) and (5.2)
+ - `MicroWaveDeviceInventory+simu.unknownTargetObject.unknownClass.receiver.yaml`: just for (4.2) and (5.2)
\ No newline at end of file
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/mwdi+data.unknownTargetObject.receiver.json b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/mwdi+data.unknownTargetObject.receiver.json
new file mode 100644
index 00000000..8e525ace
--- /dev/null
+++ b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/mwdi+data.unknownTargetObject.receiver.json
@@ -0,0 +1,103 @@
+[
+ {
+ "mode": "debug",
+ "serverList": [
+ {
+ "serverName": "dummy",
+ "dummyUri": "ping.openBackhaul.com"
+ },
+ {
+ "serverName": "mwdi",
+ "server": "http://IP_ADRESS:PORT",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "YOUR_BASIC_AUTH_CODE",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "mwdi in mwdi+simulator.unknownTargetObject.unknownMountName.receiver",
+ "server": "http://localhost:3012",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "mwdi in mwdi+simulator.unknownTargetObject.unknownClass.receiver",
+ "server": "http://localhost:3013",
+ "pathToControlConstruct": "/core-model-1-4:network-control-domain=cache/control-construct={mountName}",
+ "authorizationCode": "",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "InterfaceValidator_TR532v2.0",
+ "xCorrelator": "00000000-0000-0000-0000-000000000532",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ }
+ ],
+ "collectionInputList": [
+ {
+ "collectionName": "unknownTargetObject.unknownMountName.receiver",
+ "serverToBeApplied": "mwdi",
+ "mountName": "513250004",
+ "linkId": "101550001",
+ "kindOfReference": "dynamic",
+ "deviceAlarm_mountName": "513250008",
+ "deviceAlarm_alarmTypeId": "siae-alarms-1-0:radioEquipConcatenationAlarm",
+ "attributeValueChange_target": "513250006/logical-termination-point=LTP-MWPS-TTP-ODU-A/ltp-augment-1-0:ltp-augment-pac",
+ "attributeValueChange_attributeName": "external-label",
+ "attributeValueChange_newValue": "513559992A",
+ "objectCreation_target": "513250007/forwarding-domain=VLAN-FD/fc=VLAN-500"
+ },
+ {
+ "collectionName": "unknownTargetObject.unknownClass.receiver",
+ "serverToBeApplied": "mwdi",
+ "mountName": "513250004",
+ "linkId": "101550001",
+ "kindOfReference": "dynamic",
+ "deviceAlarm_mountName": "513250008",
+ "deviceAlarm_alarmTypeId": "siae-alarms-1-0:radioEquipConcatenationAlarm",
+ "attributeValueChange_target": "513250006/logical-termination-point=LTP-MWPS-TTP-ODU-A/ltp-augment-1-0:ltp-augment-pac",
+ "attributeValueChange_attributeName": "external-label",
+ "attributeValueChange_newValue": "513559992A",
+ "objectCreation_target": "513250007/forwarding-domain=VLAN-FD/fc=VLAN-500"
+ },
+ {
+ "collectionName": "unknownTargetObject.unknownMountName.receiver_simulator",
+ "serverToBeApplied": "mwdi in mwdi+simulator.unknownTargetObject.unknownMountName.receiver",
+ "mountName": "305250001",
+ "linkId": "101550001",
+ "kindOfReference": "static",
+ "suffixUrlEncodingIsRequired": true,
+ "deviceAlarm_mountName": "513250008",
+ "deviceAlarm_alarmTypeId": "siae-alarms-1-0:radioEquipConcatenationAlarm",
+ "attributeValueChange_target": "513250006/logical-termination-point=LTP-MWPS-TTP-ODU-A/ltp-augment-1-0:ltp-augment-pac",
+ "attributeValueChange_attributeName": "external-label",
+ "attributeValueChange_newValue": "513559992A",
+ "objectCreation_target": "513250007/forwarding-domain=VLAN-FD/fc=VLAN-500"
+ },
+ {
+ "collectionName": "unknownTargetObject.unknownClass.receiver_simulator",
+ "serverToBeApplied": "mwdi in mwdi+simulator.unknownTargetObject.unknownClass.receiver",
+ "mountName": "305250001",
+ "linkId": "101550001",
+ "kindOfReference": "static",
+ "suffixUrlEncodingIsRequired": true,
+ "deviceAlarm_mountName": "513250008",
+ "deviceAlarm_alarmTypeId": "siae-alarms-1-0:radioEquipConcatenationAlarm",
+ "attributeValueChange_target": "513250006/logical-termination-point=LTP-MWPS-TTP-ODU-A/ltp-augment-1-0:ltp-augment-pac",
+ "attributeValueChange_attributeName": "external-label",
+ "attributeValueChange_newValue": "513559992A",
+ "objectCreation_target": "513250007/forwarding-domain=VLAN-FD/fc=VLAN-500"
+ }
+ ]
+ }
+]
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/mwdi+diagram.unknownTargetObject.receiver.plantuml b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/mwdi+diagram.unknownTargetObject.receiver.plantuml
new file mode 100644
index 00000000..8147cc89
--- /dev/null
+++ b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/mwdi+diagram.unknownTargetObject.receiver.plantuml
@@ -0,0 +1,89 @@
+@startuml mwdi+diagram.unknownTargetObject.receiver
+skinparam responseMessageBelowArrow true
+
+title
+mwdi+testcase.unknownTargetObject.receiver
+end title
+
+participant "Postman" as Postman
+participant "Data" as Data
+participant "Collection" as Collection
+
+participant "/v1/regard-controller-attribute-value-change" as RCAVC
+participant "/v1/regard-device-alarm" as RDA
+participant "/v1/regard-device-attribute-value-change" as RDAVC
+participant "/v1/regard-device-object-deletion" as RDOD
+participant "/v1/regard-device-object-creation" as RDOC
+
+group Preparation
+ Data --\\o Postman : {servers, collection-input-list}
+ activate Postman
+ Postman --\\o Collection : {servers, collection-input-list}
+end
+
+group /v1/regard-controller-attribute-value-change
+ Collection --\\o Postman : {servers}
+ Postman -> RCAVC : {requestBody with unknown mountName in resource}
+ Postman <-- RCAVC : 204
+ note right Postman #Orange
+ check for 204
+ end note
+end
+
+group /v1/regard-device-alarm
+ Collection --\\o Postman : {servers, collection-input-list}
+ Postman -> RDA : {requestBody with unknown mountName in resource}
+ Postman <-- RDA : 500
+ note right Postman #Orange
+ check for 500
+ end note
+end
+
+group /v1/regard-device-attribute-value-change
+ Collection --\\o Postman : {servers, collection-input-list}
+ Postman -> RDAVC : {requestBody with unknown mountName in object-path}
+ Postman <-- RDAVC : 500
+ note right Postman #Orange
+ check for 500
+ end note
+end
+
+group /v1/regard-device-object-deletion
+ Collection --\\o Postman : {servers, (object-creation) target}
+ Postman -> RDOD : {requestBody with unknown mountName in object-path}
+ Postman <-- RDOD : 500
+ note right Postman #Orange
+ check for 500
+ end note
+end
+
+group /v1/regard-device-object-deletion
+ Collection --\\o Postman : {servers, (object-creation) target}
+ Postman -> RDOD : {requestBody with known mountName, but unknown class in object-path}
+ Postman <-- RDOD : 533
+ note right Postman #Orange
+ check for 533
+ end note
+end
+
+group /v1/regard-device-object-creation
+ Collection --\\o Postman : {servers, target}
+ Postman -> RDOC : {requestBody with unknown mountName in object-path}
+ Postman <-- RDOC : 404
+ note right Postman #Orange
+ check for 404
+ end note
+end
+
+group /v1/regard-device-object-creation
+ Collection --\\o Postman : {servers, target}
+ Postman -> RDOC : {requestBody with known mountName, but unknown class in object-path}
+ Postman <-- RDOC : 404
+ note right Postman #Orange
+ check for 404
+ end note
+end
+
+deactivate Postman
+
+@enduml
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/mwdi+diagram.unknownTargetObject.receiver.png b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/mwdi+diagram.unknownTargetObject.receiver.png
new file mode 100644
index 00000000..872c1ef1
Binary files /dev/null and b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/mwdi+diagram.unknownTargetObject.receiver.png differ
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/mwdi+testcase.unknownTargetObject.receiver.json b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/mwdi+testcase.unknownTargetObject.receiver.json
new file mode 100644
index 00000000..f012edc9
--- /dev/null
+++ b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/mwdi+testcase.unknownTargetObject.receiver.json
@@ -0,0 +1,2409 @@
+{
+ "info": {
+ "name": "mwdi+testcase.unknownTargetObject.receiver",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "UserInput",
+ "item": [
+ {
+ "name": "for loading user input",
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "exec": [
+ "console.clear();\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "logger.struc(\"===== mwdi+testcase.unknownTargetObject.receiver ==========================\");\r",
+ "logger.struc(\"==========================================================================================\");\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Loading Input Data from File\r",
+ "****************************************************************************************/\r",
+ "var inputFromFile;\r",
+ "try {\r",
+ " inputFromFile = data\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Input data could not be loaded.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Environmental Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.environment.clear();\r",
+ "\r",
+ " let mode;\r",
+ " mode = inputFromFile.mode;\r",
+ " // Mode to be applied while running this testcase collection \r",
+ " // \"analysis\" -> human does detailed analysis of response bodies etc.\r",
+ " // \"testing\" -> automated approval based on binary result\r",
+ " // \"debugging\" -> support for programming the testcase collection\r",
+ "\r",
+ " let logLevel;\r",
+ " switch(mode) {\r",
+ " case \"debugging\":\r",
+ " logLevel = \"debug\";\r",
+ " break;\r",
+ " case \"analysis\":\r",
+ " logLevel = \"log\";\r",
+ " break;\r",
+ " case \"testing\":\r",
+ " logLevel = \"error\";\r",
+ " break;\r",
+ " default:\r",
+ " logLevel = \"debug\";\r",
+ " };\r",
+ " // Level of detail of the logging; find more info in pre-request script on the collection's level\r",
+ "\r",
+ " let serverList = [];\r",
+ " serverList = inputFromFile.serverList;\r",
+ " // list of addresses of applications, controllers etc.\r",
+ " // serverName : key attribute for identifying the servers\r",
+ " // dummyUri : http address that shall be addressed by bare processing Requests\r",
+ " // server : part of the URI that is comprised from protocol, IP address and TCP port\r",
+ " // pathToControlConstruct : part of the URI that is identical for all Requests that are addressing into the device's data tree\r",
+ " // authorizationCode : authentication that has to be sent in case of BasicAuth protection (e.g. OpenDaylight NBI)\r",
+ " // operationKey : ApiKey that has to be sent in case of addressing a MW SDN application (e.g. MicroWaveDeviceInventory)\r",
+ " // userName : user header to be sent in case of addressing a MW SDN application\r",
+ " // originator : originator header to be sent in case of addressing a MW SDN application\r",
+ " // xCorrelator : x-correlator header to be sent in case of addressing a MW SDN application\r",
+ " // traceIndicator : trace-indicator header to be sent in case of addressing a MW SDN application\r",
+ " // customerJourney : customer-journey header to be sent in case of addressing a MW SDN application\r",
+ "\r",
+ " let collectionInputList = [];\r",
+ " collectionInputList = inputFromFile.collectionInputList;\r",
+ " // list of inputs to individual test case collections\r",
+ " // serverToBeApplied : server that shall be addressed in the respective request/test case\r",
+ " // mountName : mountName of the device that is to be validated\r",
+ " // uuid of the object that is to be validated\r",
+ " // localId of the object that is to be validated\r",
+ " // linkId : linkName of the link that is to be validated\r",
+ " // linkPort : id of the linkPort that is to be validated\r",
+ "\r",
+ " pm.environment.set(\"mode\", mode);\r",
+ " pm.environment.set(\"logLevel\", logLevel);\r",
+ " pm.environment.set(\"serverList\", serverList);\r",
+ " pm.environment.set(\"collectionInputList\", collectionInputList);\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Environment variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Collection Variables \r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " pm.collectionVariables.clear()\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Collection variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Setting Local Variables and Preparing the Request\r",
+ "****************************************************************************************/\r",
+ "try {\r",
+ " let uri;\r",
+ " let dummyServerInfo;\r",
+ " dummyServerInfo = ExtractServerInformation(inputFromFile.serverList, \"dummy\");\r",
+ " uri = dummyServerInfo.dummyUri;\r",
+ "\r",
+ " pm.variables.clear();\r",
+ "\r",
+ " pm.variables.set(\"uri\", uri);\r",
+ "\r",
+ " pm.request.headers.upsert({ key: \"Accept\", value: \"application/json\" });\r",
+ " pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" })\r",
+ "\r",
+ "} catch (error) {\r",
+ " logger.error(\"! Local variables could not be set.\")\r",
+ "}\r",
+ "\r",
+ "\r",
+ "/****************************************************************************************\r",
+ "* Functions\r",
+ "****************************************************************************************/\r",
+ "function ExtractServerInformation(serverList, searchedServerName) {\r",
+ " try {\r",
+ " for(let i=0; i log -> info -> warn -> error -> struc -> none",
+ "// It creates \"logger\" global variable which can be used anywhere in nested collection scripts",
+ "",
+ "const logLevels = [\"debug\", \"log\", \"info\", \"warn\", \"error\", \"struc\", \"none\"];",
+ "",
+ "const shouldLog = (level) => {",
+ " return logLevels.indexOf(level) >= logLevels.indexOf(pm.environment.get(\"logLevel\"));",
+ "};",
+ "",
+ "logger = {",
+ " debug: (message, ...optionalParams) => {",
+ " shouldLog(\"debug\") && console.log(message, ...optionalParams);",
+ " },",
+ " log: (message, ...optionalParams) => {",
+ " shouldLog(\"log\") && console.log(message, ...optionalParams);",
+ " },",
+ " info: (message, ...optionalParams) => {",
+ " shouldLog(\"info\") && console.log(message, ...optionalParams);",
+ " },",
+ " warn: (message, ...optionalParams) => {",
+ " shouldLog(\"warn\") && console.log(message, ...optionalParams);",
+ " },",
+ " error: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.error(message, ...optionalParams);",
+ " },",
+ " struc: (message, ...optionalParams) => {",
+ " shouldLog(\"error\") && console.log(message, ...optionalParams);",
+ " },",
+ "};",
+ ""
+ ]
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/simulators/MicroWaveDeviceInventory+simu.unknownTargetObject.unknownClass.receiver.yaml b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/simulators/MicroWaveDeviceInventory+simu.unknownTargetObject.unknownClass.receiver.yaml
new file mode 100644
index 00000000..b2561d02
--- /dev/null
+++ b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/simulators/MicroWaveDeviceInventory+simu.unknownTargetObject.unknownClass.receiver.yaml
@@ -0,0 +1,1759 @@
+openapi: 3.0.0
+info:
+ title: MWDI_1.2.2+simulator.unknownTargetObject.unknownClass.receiver
+ version: 1.0.0
+
+paths:
+########################################################################################################################
+# Service Layer - Individual Part
+# MWDI_1.2.2+simulator.unknownTargetObject.unknownClass.receiver in static reference mode
+########################################################################################################################
+
+ /v1/regard-device-object-creation:
+ post:
+ operationId: regardDeviceObjectCreation
+ summary: 'Receives notifications about objects that have been created inside the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:object-creation-notification
+ properties:
+ notification-proxy-1-0:object-creation-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - object-path
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ object-path:
+ type: string
+ example:
+ notification-proxy-1-0:object-creation-notification:
+ counter: 2
+ timestamp: '2023-07-10T12:27:03+01:00'
+ object-path: '/core-model-1-4:network-control-domain=live/control-construct=513250009/profile-collection/profile=co-channel-17'
+ responses:
+ '404':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/regard-device-object-deletion:
+ post:
+ operationId: regardDeviceObjectDeletion
+ summary: 'Receives notifications about objects that have been deleted inside the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:object-deletion-notification
+ properties:
+ notification-proxy-1-0:object-deletion-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - object-path
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ object-path:
+ type: string
+ example:
+ notification-proxy-1-0:object-deletion-notification:
+ counter: 14
+ timestamp: '2023-07-13T09:31:48+01:00'
+ object-path: '/core-model-1-4:network-control-domain=live/control-construct=513250009/logical-termination-point=RF-2146697857'
+ responses:
+ '533':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+########################################################################################################################
+# Common Components
+########################################################################################################################
+components:
+ parameters:
+ user:
+ name: user
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'User Name'
+ description: 'User identifier from the system starting the service call'
+ originator:
+ name: originator
+ in: header
+ required: true
+ schema:
+ type: string
+ minLength: 3
+ example: 'Resolver'
+ description: >
+ 'Identification for the system consuming the API, as defined in
+ [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]'
+ x-correlator:
+ name: x-correlator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ description: 'Empty string accepted from external applications.'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses'
+ trace-indicator:
+ name: trace-indicator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^([0-9]+)(\.([0-9]+))*$'
+ description: 'Empty string accepted from external applications.'
+ example: '1.3.1'
+ description: 'Sequence of request numbers along the flow'
+ customer-journey:
+ name: customer-journey
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'Unknown value'
+ description: 'Holds information supporting customer’s journey to which the execution applies'
+ mountName:
+ name: mountName
+ in: path
+ required: true
+ schema:
+ type: string
+ example: '222250001'
+ description: 'The mountName of the device that is addressed by the request'
+ uuid:
+ name: uuid
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within the device'
+ uuid1:
+ name: uuid1
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Another instance identifier that is unique within the device'
+ localId:
+ name: localId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within its list'
+ fields:
+ name: fields
+ in: query
+ required: false
+ schema:
+ type: string
+ example: 'node(node-id;netconf-node-topology:connection-status)'
+ description: 'Query parameter to filter ressources according to RFC8040 fields filter spec'
+ responses:
+ responseForErroredServiceRequests:
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ responseForErroredOamRequests:
+ description: 'Response in case of errored OaM requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ '429':
+ description: 'Response in case too many requests need to be executed in parallel or too many requests have been received within a time period. The maximum number of parallel requests is defined in an IntegerProfile with the service name as a prefix and MaxNumberOfParallelRequests as a suffix. Some time period to elapse for throttling incomming requests is defined in an IntegerProfile with the service name as a prefix and ThrottlingPeriod as a suffix'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 429
+ maximum: 429
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Too many requests'
+ '460':
+ description: 'Response in case the mountName provided in the request is not found in the list of connected devices'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 460
+ maximum: 460
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not connected. Requested device is currently not in connected state at the controller'
+ '461':
+ description: 'Response in case the (parent) topology object provided in the request (body or path) is not found in the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 461
+ maximum: 461
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not available. The topology (parent) object is currently not found in the cache.'
+ '470':
+ description: 'Response in case the resource specified in the request does not exist within the connected device'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 470
+ maximum: 470
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource not existing. Device informs about addressed resource unknown'
+ '471':
+ description: 'Response in case the (child) topology object specified in the request (body or path) does not exist within the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 471
+ maximum: 471
+ format: int32
+ message:
+ type: string
+ enum:
+ - '(Child) topology object not existing. Cache informs about addressed resource unknown.'
+ '502':
+ description: 'Response in case the server is acting as a gateway or proxy and received an invalid response from the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 502
+ maximum: 502
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway'
+ '530':
+ description: 'Response in case the referenced resource exists (e.g. device connected and resource exists in internal datatree), but response data is either not available, lost during transmission, incomplete or corrupted'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 530
+ maximum: 530
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Data invalid. Response data not available, incomplete or corrupted'
+ '531':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to authenticate at the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 531
+ maximum: 531
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Authentication at upstream server failed.'
+ '532':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to connect to the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 532
+ maximum: 532
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Upstream server not responding.'
+ '533':
+ description: 'Response in case the referenced resource for an connected device does not exist at the controller.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 533
+ maximum: 533
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource unknown. The resource for the connected device does not exist at the Controller.'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ life-cycle-state:
+ schema:
+ type: string
+ enum:
+ - 'EXPERIMENTAL'
+ - 'OPERATIONAL'
+ - 'DEPRECATED'
+ - 'OBSOLETE'
+ - 'UNKNOWN'
+ - 'NOT_YET_DEFINED'
+ example: 'EXPERIMENTAL'
+ schemas:
+ errorDescription:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
+ genericRepresentation:
+ type: object
+ required:
+ - response-value-list
+ - consequent-action-list
+ properties:
+ response-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ - value
+ - datatype
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Field name
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]'
+ value:
+ type: string
+ description: >
+ 'Field value
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]'
+ datatype:
+ type: string
+ description: >
+ 'Field datatype
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]'
+ consequent-action-list:
+ type: array
+ items:
+ type: object
+ required:
+ - label
+ - request
+ - display-in-new-browser-window
+ properties:
+ label:
+ type: string
+ description: >
+ 'Label that shall be presented on the button
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]'
+ request:
+ type: string
+ description: >
+ 'Request that shall be called, when button gets pressed
+ from
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}]
+ ://
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address}
+ or
+ {/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}]
+ :
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}]
+ [{/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]'
+ input-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Name of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]'
+ unit:
+ type: string
+ description: >
+ 'Unit of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]'
+ display-in-new-browser-window:
+ type: boolean
+ description: >
+ 'True in case Request shall be represented in a new browser window
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]'
+ logicalTerminationPoint:
+ type: object
+ required:
+ - uuid
+ - ltp-direction
+ - client-ltp
+ - server-ltp
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-direction:
+ type: string
+ client-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ server-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ layer-protocol:
+ type: array
+ minItems: 1
+ maxItems: 1
+ items:
+ oneOf:
+ - description: 'operation server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-server-interface-1-0:operation-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-server-interface-1-0:operation-server-interface-pac:
+ type: object
+ required:
+ - operation-server-interface-capability
+ - operation-server-interface-configuration
+ properties:
+ operation-server-interface-capability:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-server-interface-configuration:
+ type: object
+ required:
+ - life-cycle-state
+ properties:
+ life-cycle-state:
+ type: string
+ - description: 'http server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-server-interface-1-0:http-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-server-interface-1-0:http-server-interface-pac:
+ type: object
+ required:
+ - http-server-interface-capability
+ properties:
+ http-server-interface-capability:
+ type: object
+ required:
+ - application-name
+ - release-number
+ - data-update-period
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ data-update-period:
+ type: string
+ - description: 'tcp server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-server-interface-1-0:tcp-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-server-interface-1-0:tcp-server-interface-pac:
+ type: object
+ required:
+ - tcp-server-interface-configuration
+ properties:
+ tcp-server-interface-configuration:
+ type: object
+ required:
+ - description
+ - local-protocol
+ - local-address
+ - local-port
+ properties:
+ description:
+ type: string
+ local-protocol:
+ type: string
+ local-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ local-port:
+ type: integer
+ - description: 'operation client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-client-interface-1-0:operation-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-client-interface-1-0:operation-client-interface-pac:
+ type: object
+ required:
+ - operation-client-interface-configuration
+ - operation-client-interface-status
+ properties:
+ operation-client-interface-configuration:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'elasticsearch client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac:
+ type: object
+ required:
+ - elasticsearch-client-interface-configuration
+ - elasticsearch-client-interface-status
+ properties:
+ elasticsearch-client-interface-configuration:
+ type: object
+ required:
+ - index-alias
+ properties:
+ index-alias:
+ type: string
+ elasticsearch-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'http client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-client-interface-1-0:http-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-client-interface-1-0:http-client-interface-pac:
+ type: object
+ required:
+ - http-client-interface-configuration
+ properties:
+ http-client-interface-configuration:
+ type: object
+ required:
+ - application-name
+ - release-number
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ - description: 'tcp client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-client-interface-1-0:tcp-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-client-interface-1-0:tcp-client-interface-pac:
+ type: object
+ required:
+ - tcp-client-interface-configuration
+ properties:
+ tcp-client-interface-configuration:
+ type: object
+ required:
+ - remote-protocol
+ - remote-address
+ - remote-port
+ properties:
+ remote-protocol:
+ type: string
+ remote-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ remote-port:
+ type: integer
+ forwardingDomain:
+ type: object
+ required:
+ - uuid
+ - forwarding-construct
+ properties:
+ uuid:
+ type: string
+ forwarding-construct:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - name
+ - fc-port
+ properties:
+ uuid:
+ type: string
+ name:
+ type: array
+ items:
+ type: object
+ required:
+ - value-name
+ - value
+ properties:
+ value-name:
+ type: string
+ value:
+ type: string
+ fc-port:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ port-direction:
+ type: string
+ logical-termination-point:
+ type: string
+
+ CONTROL_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ - alarms-1-0:alarm-pac
+ - equipment
+ - firmware-1-0:firmware-collection
+ - profile-collection
+ - logical-termination-point
+ properties:
+ uuid:
+ type: string
+ alarms-1-0:alarm-pac:
+ $ref: '#/components/schemas/ALARM_PAC'
+ equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EQUIPMENT'
+ firmware-1-0:firmware-collection:
+ $ref: '#/components/schemas/FIRMWARE_COLLECTION'
+ profile-collection:
+ $ref: '#/components/schemas/PROFILE_COLLECTION'
+ forwarding-domain:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_DOMAIN'
+ logical-termination-point:
+ type: array
+ items:
+ $ref: '#/components/schemas/LOGICAL_TERMINATION_POINT'
+
+ ALARM_PAC:
+ type: object
+ required:
+ - alarm-capability
+ - alarm-configuration
+ - current-alarms
+ - alarm-event-records
+ properties:
+ alarm-capability:
+ $ref: '#/components/schemas/ALARM_CAPABILITY'
+ alarm-configuration:
+ $ref: '#/components/schemas/ALARM_CONFIGURATION'
+ current-alarms:
+ $ref: '#/components/schemas/CURRENT_ALARMS'
+ alarm-event-records:
+ $ref: '#/components/schemas/ALARM_EVENT_RECORDS'
+ ALARM_CAPABILITY:
+ type: object
+ ALARM_CONFIGURATION:
+ type: object
+ CURRENT_ALARMS:
+ type: object
+ ALARM_EVENT_RECORDS:
+ type: object
+
+ EQUIPMENT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ connector:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONNECTOR'
+ contained-holder:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONTAINED_HOLDER'
+ expected-equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EXPECTED_EQUIPMENT'
+ actual-equipment:
+ type: object
+ CONNECTOR:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ CONTAINED_HOLDER:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ EXPECTED_EQUIPMENT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ ACTUAL_EQUIPMENT:
+ type: object
+
+ FIRMWARE_COLLECTION:
+ type: object
+ required:
+ - firmware-component-list
+ properties:
+ firmware-component-list:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_LIST'
+ FIRMWARE_COMPONENT_LIST:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - firmware-component-pac
+ properties:
+ local-id:
+ type: string
+ firmware-component-pac:
+ type: object
+ required:
+ - firmware-component-capability
+ - firmware-component-status
+ properties:
+ firmware-component-capability:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_CAPABILITY'
+ firmware-component-status:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_STATUS'
+ FIRMWARE_COMPONENT_CAPABILITY:
+ type: object
+ FIRMWARE_COMPONENT_STATUS:
+ type: object
+
+ PROFILE_COLLECTION:
+ type: object
+ required:
+ - profile
+ properties:
+ profile:
+ type: array
+ items:
+ $ref: '#/components/schemas/PROFILE'
+ PROFILE:
+ oneOf:
+ - description: 'co-channel-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - co-channel-profile-1-0:co-channel-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'co-channel-profile-1-0:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE'
+ co-channel-profile-1-0:co-channel-profile-pac:
+ type: object
+ required:
+ - co-channel-profile-capability
+ - co-channel-profile-configuration
+ properties:
+ co-channel-profile-capability:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CAPABILITY'
+ co-channel-profile-configuration:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CONFIGURATION'
+ - description: 'policing-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - policing-profile-1-0:policing-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'policing-profile-1-0:PROFILE_NAME_TYPE_POLICING_PROFILE'
+ policing-profile-1-0:policing-profile-pac:
+ type: object
+ required:
+ - policing-profile-capability
+ - policing-profile-configuration
+ properties:
+ policing-profile-capability:
+ $ref: '#/components/schemas/POLICING_PROFILE_CAPABILITY'
+ policing-profile-configuration:
+ $ref: '#/components/schemas/POLICING_PROFILE_CONFIGURATION'
+ - description: 'qos-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - qos-profile-1-0:qos-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'qos-profile-1-0:PROFILE_NAME_TYPE_QOS_PROFILE'
+ qos-profile-1-0:qos-profile-pac:
+ type: object
+ required:
+ - qos-profile-capability
+ - qos-profile-configuration
+ properties:
+ qos-profile-capability:
+ $ref: '#/components/schemas/QOS_PROFILE_CAPABILITY'
+ qos-profile-configuration:
+ $ref: '#/components/schemas/QOS_PROFILE_CONFIGURATION'
+ - description: 'scheduler-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - scheduler-profile-1-0:scheduler-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'scheduler-profile-1-0:PROFILE_NAME_TYPE_SCHEDULER_PROFILE'
+ scheduler-profile-1-0:scheduler-profile-pac:
+ type: object
+ required:
+ - scheduler-profile-capability
+ - scheduler-profile-configuration
+ properties:
+ scheduler-profile-capability:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CAPABILITY'
+ scheduler-profile-configuration:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CONFIGURATION'
+ - description: 'wred-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-profile-1-0:wred-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-profile-1-0:PROFILE_NAME_TYPE_WRED_PROFILE'
+ wred-profile-1-0:wred-profile-pac:
+ type: object
+ required:
+ - wred-profile-capability
+ - wred-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_PROFILE_CONFIGURATION'
+ - description: 'wred-template-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-template-profile-1-0:wred-template-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-template-profile-1-0:PROFILE_NAME_TYPE_WRED_TEMPLATE_PROFILE'
+ wred-template-profile-1-0:wred-template-profile-pac:
+ type: object
+ required:
+ - wred-template-profile-capability
+ - wred-template-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CONFIGURATION'
+ CO_CHANNEL_PROFILE_CAPABILITY:
+ type: object
+ CO_CHANNEL_PROFILE_CONFIGURATION:
+ type: object
+ POLICING_PROFILE_CAPABILITY:
+ type: object
+ POLICING_PROFILE_CONFIGURATION:
+ type: object
+ QOS_PROFILE_CAPABILITY:
+ type: object
+ QOS_PROFILE_CONFIGURATION:
+ type: object
+ SCHEDULER_PROFILE_CAPABILITY:
+ type: object
+ SCHEDULER_PROFILE_CONFIGURATION:
+ type: object
+ WRED_PROFILE_CAPABILITY:
+ type: object
+ WRED_PROFILE_CONFIGURATION:
+ type: object
+ WRED_TEMPLATE_PROFILE_CAPABILITY:
+ type: object
+ WRED_TEMPLATE_PROFILE_CONFIGURATION:
+ type: object
+
+ LOGICAL_TERMINATION_POINT:
+ type: object
+ required:
+ - uuid
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-augment-1-0:ltp-augment-pac:
+ $ref: '#/components/schemas/LTP_AUGMENT_PAC'
+ embedded-clock:
+ type: array
+ items:
+ $ref: '#/components/schemas/EMBEDDED_CLOCK'
+ layer-protocol:
+ type: array
+ items:
+ $ref: '#/components/schemas/LAYER_PROTOCOL'
+ LTP_AUGMENT_PAC:
+ type: object
+ EMBEDDED_CLOCK:
+ type: object
+ LAYER_PROTOCOL:
+ oneOf:
+ - description: 'air-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - air-interface-2-0:air-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ air-interface-2-0:air-interface-pac:
+ $ref: '#/components/schemas/AIR_INTERFACE_PAC'
+ - description: 'ethernet-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ethernet-container-2-0:ethernet-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER'
+ ethernet-container-2-0:ethernet-container-pac:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_PAC'
+ - description: 'hybrid-mw-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - hybrid-mw-structure-2-0:hybrid-mw-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER'
+ hybrid-mw-structure-2-0:hybrid-mw-structure-pac:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_PAC'
+ - description: 'mac-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - mac-interface-1-0:mac-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER'
+ mac-interface-1-0:mac-interface-pac:
+ $ref: '#/components/schemas/MAC_INTERFACE_PAC'
+ - description: 'pure-ethernet-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - pure-ethernet-structure-2-0:pure-ethernet-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER'
+ pure-ethernet-structure-2-0:pure-ethernet-structure-pac:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_PAC'
+ - description: 'vlan-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - vlan-interface-1-0:vlan-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER'
+ vlan-interface-1-0:vlan-interface-pac:
+ $ref: '#/components/schemas/VLAN_INTERFACE_PAC'
+ - description: 'wire-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - wire-interface-2-0:wire-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER'
+ wire-interface-2-0:wire-interface-pac:
+ $ref: '#/components/schemas/WIRE_INTERFACE_PAC'
+ - description: 'ip-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ip-interface-1-0:ip-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER'
+ ip-interface-1-0:ip-interface-pac:
+ $ref: '#/components/schemas/IP_INTERFACE_PAC'
+ - description: 'tdm-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tdm-container-2-0:tdm-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER'
+ tdm-container-2-0:tdm-container-pac:
+ $ref: '#/components/schemas/TDM_CONTAINER_PAC'
+ FORWARDING_DOMAIN:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT'
+ FORWARDING_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT_PORT'
+ FORWARDING_CONSTRUCT_PORT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ LINK:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+ LINK_PORT:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+
+ AIR_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-historical-performances
+ additionalProperties: false
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-current-performance
+ - air-interface-historical-performances
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-current-performance:
+ $ref: '#/components/schemas/AIR_INTERFACE_CURRENT_PERFORMANCE'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ AIR_INTERFACE_CAPABILITY:
+ type: object
+ AIR_INTERFACE_CONFIGURATION:
+ type: object
+ AIR_INTERFACE_STATUS:
+ type: object
+ AIR_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ AIR_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ ETHERNET_CONTAINER_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-historical-performances
+ additionalProperties: false
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-current-performance
+ - ethernet-container-historical-performances
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-current-performance:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CURRENT_PERFORMANCE'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ ETHERNET_CONTAINER_CAPABILITY:
+ type: object
+ ETHERNET_CONTAINER_CONFIGURATION:
+ type: object
+ ETHERNET_CONTAINER_STATUS:
+ type: object
+ ETHERNET_CONTAINER_CURRENT_PERFORMANCE:
+ type: object
+ ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES:
+ type: object
+
+ HYBRID_MW_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-historical-performances
+ additionalProperties: false
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-current-performance
+ - hybrid-mw-structure-historical-performances
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-current-performance:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ HYBRID_MW_STRUCTURE_CAPABILITY:
+ type: object
+ HYBRID_MW_STRUCTURE_CONFIGURATION:
+ type: object
+ HYBRID_MW_STRUCTURE_STATUS:
+ type: object
+ HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ MAC_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ - description: 'live'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ MAC_INTERFACE_CAPABILITY:
+ type: object
+ MAC_INTERFACE_CONFIGURATION:
+ type: object
+ MAC_INTERFACE_STATUS:
+ type: object
+
+ PURE_ETHERNET_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-historical-performances
+ additionalProperties: false
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-current-performance
+ - pure-ethernet-structure-historical-performances
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-current-performance:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ PURE_ETHERNET_STRUCTURE_CAPABILITY:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CONFIGURATION:
+ type: object
+ PURE_ETHERNET_STRUCTURE_STATUS:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ VLAN_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ additionalProperties: false
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ - description: 'live'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ VLAN_INTERFACE_CAPABILITY:
+ type: object
+ VLAN_INTERFACE_CONFIGURATION:
+ type: object
+
+ WIRE_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-historical-performances
+ additionalProperties: false
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-current-performance
+ - wire-interface-historical-performances
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-current-performance:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CURRENT_PERFORMANCE'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ WIRE_INTERFACE_CAPABILITY:
+ type: object
+ WIRE_INTERFACE_CONFIGURATION:
+ type: object
+ WIRE_INTERFACE_STATUS:
+ type: object
+ WIRE_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ WIRE_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+ IP_INTERFACE_PAC:
+ type: object
+ required:
+ - ip-interface-capability
+ - ip-interface-configuration
+ - ip-interface-status
+ properties:
+ ip-interface-capability:
+ $ref: '#/components/schemas/IP_INTERFACE_CAPABILITY'
+ ip-interface-configuration:
+ $ref: '#/components/schemas/IP_INTERFACE_CONFIGURATION'
+ ip-interface-status:
+ $ref: '#/components/schemas/IP_INTERFACE_STATUS'
+ IP_INTERFACE_CAPABILITY:
+ type: object
+ IP_INTERFACE_CONFIGURATION:
+ type: object
+ IP_INTERFACE_STATUS:
+ type: object
+
+ TDM_CONTAINER_PAC:
+ type: object
+ required:
+ - tdm-container-capability
+ - tdm-container-configuration
+ - tdm-container-status
+ properties:
+ tdm-container-capability:
+ $ref: '#/components/schemas/TDM_CONTAINER_CAPABILITY'
+ tdm-container-configuration:
+ $ref: '#/components/schemas/TDM_CONTAINER_CONFIGURATION'
+ tdm-container-status:
+ $ref: '#/components/schemas/TDM_CONTAINER_STATUS'
+ TDM_CONTAINER_CAPABILITY:
+ type: object
+ TDM_CONTAINER_CONFIGURATION:
+ type: object
+ TDM_CONTAINER_STATUS:
+ type: object
+
+ securitySchemes:
+ apiKeyAuth:
+ type: apiKey
+ in: header
+ name: operation-key
+ basicAuth:
+ type: http
+ scheme: basic
diff --git a/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/simulators/MicroWaveDeviceInventory+simu.unknownTargetObject.unknownMountName.receiver.yaml b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/simulators/MicroWaveDeviceInventory+simu.unknownTargetObject.unknownMountName.receiver.yaml
new file mode 100644
index 00000000..34f0f9e9
--- /dev/null
+++ b/testing/2_functional/unknownTargetObject/v1.2.2/Receiver/simulators/MicroWaveDeviceInventory+simu.unknownTargetObject.unknownMountName.receiver.yaml
@@ -0,0 +1,1915 @@
+openapi: 3.0.0
+info:
+ title: MWDI_1.2.2+simulator.unknownTargetObject.unknownMountName.receiver
+ version: 1.0.0
+
+paths:
+########################################################################################################################
+# Service Layer - Individual Part
+# MWDI_1.2.2+simulator.unknownTargetObject.unknownMountName.receiver in static reference mode
+########################################################################################################################
+
+ /v1/regard-controller-attribute-value-change:
+ post:
+ operationId: regardControllerAttributeValueChange
+ summary: 'Receives notifications about attribute value changes at the Controller'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:attribute-value-changed-notification
+ properties:
+ notification-proxy-1-0:attribute-value-changed-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - resource
+ - attribute-name
+ - new-value
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ resource:
+ type: string
+ attribute-name:
+ type: string
+ new-value:
+ type: string
+ example:
+ notification-proxy-1-0:attribute-value-changed-notification:
+ counter: 32
+ timestamp: '2023-07-11T08:21:50+01:00'
+ resource: '/core-model-1-4:network-control-domain=live/control-construct=odl-1/logical-termination-point=513250009/layer-protocol=0/mount-point-1-0:mount-point-pac/mount-point-status'
+ attribute-name: 'connection-status'
+ new-value: 'connecting'
+ responses:
+ '204':
+ description: 'Notification received'
+ headers:
+ life-cycle-state:
+ $ref: '#/components/headers/life-cycle-state'
+
+ /v1/regard-device-alarm:
+ post:
+ operationId: regardDeviceAlarm
+ summary: 'Receives notifications about alarms at devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:alarm-event-notification
+ properties:
+ notification-proxy-1-0:alarm-event-notification:
+ type: object
+ required:
+ - alarm-event-sequence-number
+ - timestamp
+ - resource
+ - alarm-type-id
+ - alarm-type-qualifier
+ - problem-severity
+ properties:
+ alarm-event-sequence-number:
+ type: integer
+ timestamp:
+ type: string
+ resource:
+ type: string
+ alarm-type-id:
+ type: string
+ alarm-type-qualifier:
+ type: string
+ problem-severity:
+ type: string
+ example:
+ notification-proxy-1-0:alarm-event-notification:
+ alarm-event-sequence-number: 1
+ timestamp: '2023-07-11T08:45:02+01:00'
+ resource: '/core-model-1-4:network-control-domain=live/control-construct=513250009/logical-termination-point=LTP-MWPS-TTP-RADIO-1A/layer-protocol=LP-MWPS-TTP-RADIO-1A/air-interface-2-0:air-interface-pac'
+ alarm-type-id: 'siae-alarms-1-0:radioEquipLinkTelemetryFailAlarm'
+ alarm-type-qualifier: ''
+ problem-severity: 'major'
+ responses:
+ '500':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/regard-device-attribute-value-change:
+ post:
+ operationId: regardDeviceAttributeValueChange
+ summary: 'Receives notifications about changes of values of attributes inside the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:attribute-value-changed-notification
+ properties:
+ notification-proxy-1-0:attribute-value-changed-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - object-path
+ - attribute-name
+ - new-value
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ object-path:
+ type: string
+ attribute-name:
+ type: string
+ new-value:
+ type: string
+ example:
+ notification-proxy-1-0:attribute-value-changed-notification:
+ counter: 32
+ timestamp: '2010-11-20T14:00:00+01:00'
+ object-path: '/core-model-1-4:network-control-domain=live/control-construct=513250009/logical-termination-point=RF-2146697857/layer-protocol=2146697857/air-interface-2-0:air-interface-pac/air-interface-configuration'
+ attribute-name: 'performance-monitoring-is-on'
+ new-value: 'true'
+ responses:
+ '500':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/regard-device-object-creation:
+ post:
+ operationId: regardDeviceObjectCreation
+ summary: 'Receives notifications about objects that have been created inside the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:object-creation-notification
+ properties:
+ notification-proxy-1-0:object-creation-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - object-path
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ object-path:
+ type: string
+ example:
+ notification-proxy-1-0:object-creation-notification:
+ counter: 2
+ timestamp: '2023-07-10T12:27:03+01:00'
+ object-path: '/core-model-1-4:network-control-domain=live/control-construct=513250009/profile-collection/profile=co-channel-17'
+ responses:
+ '404':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+ /v1/regard-device-object-deletion:
+ post:
+ operationId: regardDeviceObjectDeletion
+ summary: 'Receives notifications about objects that have been deleted inside the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - notification-proxy-1-0:object-deletion-notification
+ properties:
+ notification-proxy-1-0:object-deletion-notification:
+ type: object
+ required:
+ - counter
+ - timestamp
+ - object-path
+ properties:
+ counter:
+ type: integer
+ timestamp:
+ type: string
+ object-path:
+ type: string
+ example:
+ notification-proxy-1-0:object-deletion-notification:
+ counter: 14
+ timestamp: '2023-07-13T09:31:48+01:00'
+ object-path: '/core-model-1-4:network-control-domain=live/control-construct=513250009/logical-termination-point=RF-2146697857'
+ responses:
+ '500':
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+
+########################################################################################################################
+# Common Components
+########################################################################################################################
+components:
+ parameters:
+ user:
+ name: user
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'User Name'
+ description: 'User identifier from the system starting the service call'
+ originator:
+ name: originator
+ in: header
+ required: true
+ schema:
+ type: string
+ minLength: 3
+ example: 'Resolver'
+ description: >
+ 'Identification for the system consuming the API, as defined in
+ [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]'
+ x-correlator:
+ name: x-correlator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ description: 'Empty string accepted from external applications.'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses'
+ trace-indicator:
+ name: trace-indicator
+ in: header
+ required: true
+ schema:
+ type: string
+ pattern: '^([0-9]+)(\.([0-9]+))*$'
+ description: 'Empty string accepted from external applications.'
+ example: '1.3.1'
+ description: 'Sequence of request numbers along the flow'
+ customer-journey:
+ name: customer-journey
+ in: header
+ required: true
+ schema:
+ type: string
+ example: 'Unknown value'
+ description: 'Holds information supporting customer’s journey to which the execution applies'
+ mountName:
+ name: mountName
+ in: path
+ required: true
+ schema:
+ type: string
+ example: '222250001'
+ description: 'The mountName of the device that is addressed by the request'
+ uuid:
+ name: uuid
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within the device'
+ uuid1:
+ name: uuid1
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LTP-MWPS-TTP-1-1'
+ description: 'Another instance identifier that is unique within the device'
+ localId:
+ name: localId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 'LP-MWPS-TTP-1-1'
+ description: 'Instance identifier that is unique within its list'
+ fields:
+ name: fields
+ in: query
+ required: false
+ schema:
+ type: string
+ example: 'node(node-id;netconf-node-topology:connection-status)'
+ description: 'Query parameter to filter ressources according to RFC8040 fields filter spec'
+ responses:
+ responseForErroredServiceRequests:
+ description: 'Response in case of errored service requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$'
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ responseForErroredOamRequests:
+ description: 'Response in case of errored OaM requests'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/errorDescription'
+ '429':
+ description: 'Response in case too many requests need to be executed in parallel or too many requests have been received within a time period. The maximum number of parallel requests is defined in an IntegerProfile with the service name as a prefix and MaxNumberOfParallelRequests as a suffix. Some time period to elapse for throttling incomming requests is defined in an IntegerProfile with the service name as a prefix and ThrottlingPeriod as a suffix'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 429
+ maximum: 429
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Too many requests'
+ '460':
+ description: 'Response in case the mountName provided in the request is not found in the list of connected devices'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 460
+ maximum: 460
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not connected. Requested device is currently not in connected state at the controller'
+ '461':
+ description: 'Response in case the (parent) topology object provided in the request (body or path) is not found in the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 461
+ maximum: 461
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Not available. The topology (parent) object is currently not found in the cache.'
+ '470':
+ description: 'Response in case the resource specified in the request does not exist within the connected device'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 470
+ maximum: 470
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource not existing. Device informs about addressed resource unknown'
+ '471':
+ description: 'Response in case the (child) topology object specified in the request (body or path) does not exist within the cache.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 471
+ maximum: 471
+ format: int32
+ message:
+ type: string
+ enum:
+ - '(Child) topology object not existing. Cache informs about addressed resource unknown.'
+ '502':
+ description: 'Response in case the server is acting as a gateway or proxy and received an invalid response from the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 502
+ maximum: 502
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway'
+ '530':
+ description: 'Response in case the referenced resource exists (e.g. device connected and resource exists in internal datatree), but response data is either not available, lost during transmission, incomplete or corrupted'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 530
+ maximum: 530
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Data invalid. Response data not available, incomplete or corrupted'
+ '531':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to authenticate at the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 531
+ maximum: 531
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Authentication at upstream server failed.'
+ '532':
+ description: 'Response in case the server is acting as a gateway or proxy and was unable to connect to the upstream server (device or application providing a consumed service)'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 532
+ maximum: 532
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Bad Gateway. Upstream server not responding.'
+ '533':
+ description: 'Response in case the referenced resource for an connected device does not exist at the controller.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 533
+ maximum: 533
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Resource unknown. The resource for the connected device does not exist at the Controller.'
+ headers:
+ x-correlator:
+ schema:
+ type: string
+ example: '550e8400-e29b-11d4-a716-446655440000'
+ description: 'UUID for the service execution flow that allows to correlate requests and responses. Its value must be identical at the response compared with its corresponding request'
+ exec-time:
+ schema:
+ type: integer
+ example: 1100
+ description: 'Value written by the service provider, reporting the total elapsed time for the execution, including all the additional processing needed to retrieve the data from the backend service. Expressed in milliseconds'
+ backend-time:
+ schema:
+ type: integer
+ example: 850
+ description: 'Value written by the service provider, reporting the elapsed time for data retrieval from the backend (service invocation, database access…). Expressed in milliseconds'
+ life-cycle-state:
+ schema:
+ type: string
+ enum:
+ - 'EXPERIMENTAL'
+ - 'OPERATIONAL'
+ - 'DEPRECATED'
+ - 'OBSOLETE'
+ - 'UNKNOWN'
+ - 'NOT_YET_DEFINED'
+ example: 'EXPERIMENTAL'
+ schemas:
+ errorDescription:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
+ genericRepresentation:
+ type: object
+ required:
+ - response-value-list
+ - consequent-action-list
+ properties:
+ response-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ - value
+ - datatype
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Field name
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]'
+ value:
+ type: string
+ description: >
+ 'Field value
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]'
+ datatype:
+ type: string
+ description: >
+ 'Field datatype
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]'
+ consequent-action-list:
+ type: array
+ items:
+ type: object
+ required:
+ - label
+ - request
+ - display-in-new-browser-window
+ properties:
+ label:
+ type: string
+ description: >
+ 'Label that shall be presented on the button
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]'
+ request:
+ type: string
+ description: >
+ 'Request that shall be called, when button gets pressed
+ from
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}]
+ ://
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address}
+ or
+ {/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}]
+ :
+ [{/core-model-1-4:control-construct/logical-termination-point=mwdi-1-2-2-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}]
+ [{/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]'
+ input-value-list:
+ type: array
+ items:
+ type: object
+ required:
+ - field-name
+ properties:
+ field-name:
+ type: string
+ description: >
+ 'Name of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]'
+ unit:
+ type: string
+ description: >
+ 'Unit of an input value required for executing the Request
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]'
+ display-in-new-browser-window:
+ type: boolean
+ description: >
+ 'True in case Request shall be represented in a new browser window
+ from [/core-model-1-4:control-construct/profile-collection/profile=mwdi-1-2-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]'
+ logicalTerminationPoint:
+ type: object
+ required:
+ - uuid
+ - ltp-direction
+ - client-ltp
+ - server-ltp
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-direction:
+ type: string
+ client-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ server-ltp:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ layer-protocol:
+ type: array
+ minItems: 1
+ maxItems: 1
+ items:
+ oneOf:
+ - description: 'operation server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-server-interface-1-0:operation-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-server-interface-1-0:operation-server-interface-pac:
+ type: object
+ required:
+ - operation-server-interface-capability
+ - operation-server-interface-configuration
+ properties:
+ operation-server-interface-capability:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-server-interface-configuration:
+ type: object
+ required:
+ - life-cycle-state
+ properties:
+ life-cycle-state:
+ type: string
+ - description: 'http server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-server-interface-1-0:http-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-server-interface-1-0:http-server-interface-pac:
+ type: object
+ required:
+ - http-server-interface-capability
+ properties:
+ http-server-interface-capability:
+ type: object
+ required:
+ - application-name
+ - release-number
+ - data-update-period
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ data-update-period:
+ type: string
+ - description: 'tcp server'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-server-interface-1-0:tcp-server-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-server-interface-1-0:tcp-server-interface-pac:
+ type: object
+ required:
+ - tcp-server-interface-configuration
+ properties:
+ tcp-server-interface-configuration:
+ type: object
+ required:
+ - description
+ - local-protocol
+ - local-address
+ - local-port
+ properties:
+ description:
+ type: string
+ local-protocol:
+ type: string
+ local-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ local-port:
+ type: integer
+ - description: 'operation client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - operation-client-interface-1-0:operation-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ operation-client-interface-1-0:operation-client-interface-pac:
+ type: object
+ required:
+ - operation-client-interface-configuration
+ - operation-client-interface-status
+ properties:
+ operation-client-interface-configuration:
+ type: object
+ required:
+ - operation-name
+ properties:
+ operation-name:
+ type: string
+ operation-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'elasticsearch client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ elasticsearch-client-interface-1-0:elasticsearch-client-interface-pac:
+ type: object
+ required:
+ - elasticsearch-client-interface-configuration
+ - elasticsearch-client-interface-status
+ properties:
+ elasticsearch-client-interface-configuration:
+ type: object
+ required:
+ - index-alias
+ properties:
+ index-alias:
+ type: string
+ elasticsearch-client-interface-status:
+ type: object
+ required:
+ - operational-state
+ - life-cycle-state
+ properties:
+ operational-state:
+ type: string
+ life-cycle-state:
+ type: string
+ - description: 'http client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - http-client-interface-1-0:http-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ http-client-interface-1-0:http-client-interface-pac:
+ type: object
+ required:
+ - http-client-interface-configuration
+ properties:
+ http-client-interface-configuration:
+ type: object
+ required:
+ - application-name
+ - release-number
+ properties:
+ application-name:
+ type: string
+ release-number:
+ type: string
+ - description: 'tcp client'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tcp-client-interface-1-0:tcp-client-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ tcp-client-interface-1-0:tcp-client-interface-pac:
+ type: object
+ required:
+ - tcp-client-interface-configuration
+ properties:
+ tcp-client-interface-configuration:
+ type: object
+ required:
+ - remote-protocol
+ - remote-address
+ - remote-port
+ properties:
+ remote-protocol:
+ type: string
+ remote-address:
+ type: object
+ properties:
+ ip-address:
+ type: object
+ properties:
+ ipv-4-address:
+ type: string
+ domain-name:
+ type: string
+ remote-port:
+ type: integer
+ forwardingDomain:
+ type: object
+ required:
+ - uuid
+ - forwarding-construct
+ properties:
+ uuid:
+ type: string
+ forwarding-construct:
+ type: array
+ items:
+ type: object
+ required:
+ - uuid
+ - name
+ - fc-port
+ properties:
+ uuid:
+ type: string
+ name:
+ type: array
+ items:
+ type: object
+ required:
+ - value-name
+ - value
+ properties:
+ value-name:
+ type: string
+ value:
+ type: string
+ fc-port:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ port-direction:
+ type: string
+ logical-termination-point:
+ type: string
+
+ CONTROL_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ - alarms-1-0:alarm-pac
+ - equipment
+ - firmware-1-0:firmware-collection
+ - profile-collection
+ - logical-termination-point
+ properties:
+ uuid:
+ type: string
+ alarms-1-0:alarm-pac:
+ $ref: '#/components/schemas/ALARM_PAC'
+ equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EQUIPMENT'
+ firmware-1-0:firmware-collection:
+ $ref: '#/components/schemas/FIRMWARE_COLLECTION'
+ profile-collection:
+ $ref: '#/components/schemas/PROFILE_COLLECTION'
+ forwarding-domain:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_DOMAIN'
+ logical-termination-point:
+ type: array
+ items:
+ $ref: '#/components/schemas/LOGICAL_TERMINATION_POINT'
+
+ ALARM_PAC:
+ type: object
+ required:
+ - alarm-capability
+ - alarm-configuration
+ - current-alarms
+ - alarm-event-records
+ properties:
+ alarm-capability:
+ $ref: '#/components/schemas/ALARM_CAPABILITY'
+ alarm-configuration:
+ $ref: '#/components/schemas/ALARM_CONFIGURATION'
+ current-alarms:
+ $ref: '#/components/schemas/CURRENT_ALARMS'
+ alarm-event-records:
+ $ref: '#/components/schemas/ALARM_EVENT_RECORDS'
+ ALARM_CAPABILITY:
+ type: object
+ ALARM_CONFIGURATION:
+ type: object
+ CURRENT_ALARMS:
+ type: object
+ ALARM_EVENT_RECORDS:
+ type: object
+
+ EQUIPMENT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ connector:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONNECTOR'
+ contained-holder:
+ type: array
+ items:
+ $ref: '#/components/schemas/CONTAINED_HOLDER'
+ expected-equipment:
+ type: array
+ items:
+ $ref: '#/components/schemas/EXPECTED_EQUIPMENT'
+ actual-equipment:
+ type: object
+ CONNECTOR:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ CONTAINED_HOLDER:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ EXPECTED_EQUIPMENT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ ACTUAL_EQUIPMENT:
+ type: object
+
+ FIRMWARE_COLLECTION:
+ type: object
+ required:
+ - firmware-component-list
+ properties:
+ firmware-component-list:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_LIST'
+ FIRMWARE_COMPONENT_LIST:
+ type: array
+ items:
+ type: object
+ required:
+ - local-id
+ - firmware-component-pac
+ properties:
+ local-id:
+ type: string
+ firmware-component-pac:
+ type: object
+ required:
+ - firmware-component-capability
+ - firmware-component-status
+ properties:
+ firmware-component-capability:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_CAPABILITY'
+ firmware-component-status:
+ $ref: '#/components/schemas/FIRMWARE_COMPONENT_STATUS'
+ FIRMWARE_COMPONENT_CAPABILITY:
+ type: object
+ FIRMWARE_COMPONENT_STATUS:
+ type: object
+
+ PROFILE_COLLECTION:
+ type: object
+ required:
+ - profile
+ properties:
+ profile:
+ type: array
+ items:
+ $ref: '#/components/schemas/PROFILE'
+ PROFILE:
+ oneOf:
+ - description: 'co-channel-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - co-channel-profile-1-0:co-channel-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'co-channel-profile-1-0:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE'
+ co-channel-profile-1-0:co-channel-profile-pac:
+ type: object
+ required:
+ - co-channel-profile-capability
+ - co-channel-profile-configuration
+ properties:
+ co-channel-profile-capability:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CAPABILITY'
+ co-channel-profile-configuration:
+ $ref: '#/components/schemas/CO_CHANNEL_PROFILE_CONFIGURATION'
+ - description: 'policing-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - policing-profile-1-0:policing-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'policing-profile-1-0:PROFILE_NAME_TYPE_POLICING_PROFILE'
+ policing-profile-1-0:policing-profile-pac:
+ type: object
+ required:
+ - policing-profile-capability
+ - policing-profile-configuration
+ properties:
+ policing-profile-capability:
+ $ref: '#/components/schemas/POLICING_PROFILE_CAPABILITY'
+ policing-profile-configuration:
+ $ref: '#/components/schemas/POLICING_PROFILE_CONFIGURATION'
+ - description: 'qos-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - qos-profile-1-0:qos-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'qos-profile-1-0:PROFILE_NAME_TYPE_QOS_PROFILE'
+ qos-profile-1-0:qos-profile-pac:
+ type: object
+ required:
+ - qos-profile-capability
+ - qos-profile-configuration
+ properties:
+ qos-profile-capability:
+ $ref: '#/components/schemas/QOS_PROFILE_CAPABILITY'
+ qos-profile-configuration:
+ $ref: '#/components/schemas/QOS_PROFILE_CONFIGURATION'
+ - description: 'scheduler-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - scheduler-profile-1-0:scheduler-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'scheduler-profile-1-0:PROFILE_NAME_TYPE_SCHEDULER_PROFILE'
+ scheduler-profile-1-0:scheduler-profile-pac:
+ type: object
+ required:
+ - scheduler-profile-capability
+ - scheduler-profile-configuration
+ properties:
+ scheduler-profile-capability:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CAPABILITY'
+ scheduler-profile-configuration:
+ $ref: '#/components/schemas/SCHEDULER_PROFILE_CONFIGURATION'
+ - description: 'wred-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-profile-1-0:wred-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-profile-1-0:PROFILE_NAME_TYPE_WRED_PROFILE'
+ wred-profile-1-0:wred-profile-pac:
+ type: object
+ required:
+ - wred-profile-capability
+ - wred-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_PROFILE_CONFIGURATION'
+ - description: 'wred-template-profile'
+ type: object
+ required:
+ - uuid
+ - profile-name
+ - wred-template-profile-1-0:wred-template-profile-pac
+ properties:
+ uuid:
+ type: string
+ profile-name:
+ type: string
+ enum:
+ - 'wred-template-profile-1-0:PROFILE_NAME_TYPE_WRED_TEMPLATE_PROFILE'
+ wred-template-profile-1-0:wred-template-profile-pac:
+ type: object
+ required:
+ - wred-template-profile-capability
+ - wred-template-profile-configuration
+ properties:
+ wred-profile-capability:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CAPABILITY'
+ wred-profile-configuration:
+ $ref: '#/components/schemas/WRED_TEMPLATE_PROFILE_CONFIGURATION'
+ CO_CHANNEL_PROFILE_CAPABILITY:
+ type: object
+ CO_CHANNEL_PROFILE_CONFIGURATION:
+ type: object
+ POLICING_PROFILE_CAPABILITY:
+ type: object
+ POLICING_PROFILE_CONFIGURATION:
+ type: object
+ QOS_PROFILE_CAPABILITY:
+ type: object
+ QOS_PROFILE_CONFIGURATION:
+ type: object
+ SCHEDULER_PROFILE_CAPABILITY:
+ type: object
+ SCHEDULER_PROFILE_CONFIGURATION:
+ type: object
+ WRED_PROFILE_CAPABILITY:
+ type: object
+ WRED_PROFILE_CONFIGURATION:
+ type: object
+ WRED_TEMPLATE_PROFILE_CAPABILITY:
+ type: object
+ WRED_TEMPLATE_PROFILE_CONFIGURATION:
+ type: object
+
+ LOGICAL_TERMINATION_POINT:
+ type: object
+ required:
+ - uuid
+ - layer-protocol
+ properties:
+ uuid:
+ type: string
+ ltp-augment-1-0:ltp-augment-pac:
+ $ref: '#/components/schemas/LTP_AUGMENT_PAC'
+ embedded-clock:
+ type: array
+ items:
+ $ref: '#/components/schemas/EMBEDDED_CLOCK'
+ layer-protocol:
+ type: array
+ items:
+ $ref: '#/components/schemas/LAYER_PROTOCOL'
+ LTP_AUGMENT_PAC:
+ type: object
+ EMBEDDED_CLOCK:
+ type: object
+ LAYER_PROTOCOL:
+ oneOf:
+ - description: 'air-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - air-interface-2-0:air-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER'
+ air-interface-2-0:air-interface-pac:
+ $ref: '#/components/schemas/AIR_INTERFACE_PAC'
+ - description: 'ethernet-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ethernet-container-2-0:ethernet-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER'
+ ethernet-container-2-0:ethernet-container-pac:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_PAC'
+ - description: 'hybrid-mw-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - hybrid-mw-structure-2-0:hybrid-mw-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER'
+ hybrid-mw-structure-2-0:hybrid-mw-structure-pac:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_PAC'
+ - description: 'mac-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - mac-interface-1-0:mac-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER'
+ mac-interface-1-0:mac-interface-pac:
+ $ref: '#/components/schemas/MAC_INTERFACE_PAC'
+ - description: 'pure-ethernet-structure'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - pure-ethernet-structure-2-0:pure-ethernet-structure-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER'
+ pure-ethernet-structure-2-0:pure-ethernet-structure-pac:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_PAC'
+ - description: 'vlan-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - vlan-interface-1-0:vlan-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER'
+ vlan-interface-1-0:vlan-interface-pac:
+ $ref: '#/components/schemas/VLAN_INTERFACE_PAC'
+ - description: 'wire-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - wire-interface-2-0:wire-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER'
+ wire-interface-2-0:wire-interface-pac:
+ $ref: '#/components/schemas/WIRE_INTERFACE_PAC'
+ - description: 'ip-interface'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - ip-interface-1-0:ip-interface-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER'
+ ip-interface-1-0:ip-interface-pac:
+ $ref: '#/components/schemas/IP_INTERFACE_PAC'
+ - description: 'tdm-container'
+ type: object
+ required:
+ - local-id
+ - layer-protocol-name
+ - tdm-container-2-0:tdm-container-pac
+ properties:
+ local-id:
+ type: string
+ layer-protocol-name:
+ type: string
+ enum:
+ - 'tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER'
+ tdm-container-2-0:tdm-container-pac:
+ $ref: '#/components/schemas/TDM_CONTAINER_PAC'
+ FORWARDING_DOMAIN:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT'
+ FORWARDING_CONSTRUCT:
+ type: object
+ required:
+ - uuid
+ properties:
+ uuid:
+ type: string
+ fc-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/FORWARDING_CONSTRUCT_PORT'
+ FORWARDING_CONSTRUCT_PORT:
+ type: object
+ required:
+ - local-id
+ properties:
+ local-id:
+ type: string
+ LINK:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - link-direction
+ - forwarding-domain
+ - link-port
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ link-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN'
+ forwarding-domain:
+ type: array
+ items:
+ type: string
+ link-port:
+ type: array
+ items:
+ $ref: '#/components/schemas/LINK_PORT'
+ - description: 'minimum for rest'
+ type: object
+ required:
+ - uuid
+ - layer-protocol-name
+ - end-point-list
+ properties:
+ uuid:
+ type: string
+ layer-protocol-name:
+ type: string
+ end-point-list:
+ type: array
+ items:
+ type: object
+ required:
+ - control-construct
+ - logical-termination-point
+ - layer-protocol
+ properties:
+ control-construct:
+ type: string
+ logical-termination-point:
+ type: string
+ layer-protocol:
+ type: string
+ LINK_PORT:
+ oneOf:
+ - description: 'generic'
+ type: object
+ required:
+ - local-id
+ - link-port-direction
+ - logical-termination-point
+ properties:
+ local-id:
+ type: string
+ link-port-direction:
+ type: string
+ enum:
+ - 'core-model-1-4:PORT_DIRECTION_INPUT'
+ - 'core-model-1-4:PORT_DIRECTION_OUTPUT'
+ - 'core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL'
+ - 'core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN'
+ logical-termination-point:
+ type: string
+
+ AIR_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-historical-performances
+ additionalProperties: false
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - air-interface-capability
+ - air-interface-configuration
+ - air-interface-status
+ - air-interface-current-performance
+ - air-interface-historical-performances
+ properties:
+ air-interface-capability:
+ $ref: '#/components/schemas/AIR_INTERFACE_CAPABILITY'
+ air-interface-configuration:
+ $ref: '#/components/schemas/AIR_INTERFACE_CONFIGURATION'
+ air-interface-status:
+ $ref: '#/components/schemas/AIR_INTERFACE_STATUS'
+ air-interface-current-performance:
+ $ref: '#/components/schemas/AIR_INTERFACE_CURRENT_PERFORMANCE'
+ air-interface-historical-performances:
+ $ref: '#/components/schemas/AIR_INTERFACE_HISTORICAL_PERFORMANCES'
+ AIR_INTERFACE_CAPABILITY:
+ type: object
+ AIR_INTERFACE_CONFIGURATION:
+ type: object
+ AIR_INTERFACE_STATUS:
+ type: object
+ AIR_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ AIR_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ ETHERNET_CONTAINER_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-historical-performances
+ additionalProperties: false
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - ethernet-container-capability
+ - ethernet-container-configuration
+ - ethernet-container-status
+ - ethernet-container-current-performance
+ - ethernet-container-historical-performances
+ properties:
+ ethernet-container-capability:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CAPABILITY'
+ ethernet-container-configuration:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CONFIGURATION'
+ ethernet-container-status:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_STATUS'
+ ethernet-container-current-performance:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_CURRENT_PERFORMANCE'
+ ethernet-container-historical-performances:
+ $ref: '#/components/schemas/ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES'
+ ETHERNET_CONTAINER_CAPABILITY:
+ type: object
+ ETHERNET_CONTAINER_CONFIGURATION:
+ type: object
+ ETHERNET_CONTAINER_STATUS:
+ type: object
+ ETHERNET_CONTAINER_CURRENT_PERFORMANCE:
+ type: object
+ ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES:
+ type: object
+
+ HYBRID_MW_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-historical-performances
+ additionalProperties: false
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - hybrid-mw-structure-capability
+ - hybrid-mw-structure-configuration
+ - hybrid-mw-structure-status
+ - hybrid-mw-structure-current-performance
+ - hybrid-mw-structure-historical-performances
+ properties:
+ hybrid-mw-structure-capability:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CAPABILITY'
+ hybrid-mw-structure-configuration:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CONFIGURATION'
+ hybrid-mw-structure-status:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_STATUS'
+ hybrid-mw-structure-current-performance:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE'
+ hybrid-mw-structure-historical-performances:
+ $ref: '#/components/schemas/HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES'
+ HYBRID_MW_STRUCTURE_CAPABILITY:
+ type: object
+ HYBRID_MW_STRUCTURE_CONFIGURATION:
+ type: object
+ HYBRID_MW_STRUCTURE_STATUS:
+ type: object
+ HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ MAC_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ - description: 'live'
+ type: object
+ required:
+ - mac-interface-capability
+ - mac-interface-configuration
+ - mac-interface-status
+ properties:
+ mac-interface-capability:
+ $ref: '#/components/schemas/MAC_INTERFACE_CAPABILITY'
+ mac-interface-configuration:
+ $ref: '#/components/schemas/MAC_INTERFACE_CONFIGURATION'
+ mac-interface-status:
+ $ref: '#/components/schemas/MAC_INTERFACE_STATUS'
+ MAC_INTERFACE_CAPABILITY:
+ type: object
+ MAC_INTERFACE_CONFIGURATION:
+ type: object
+ MAC_INTERFACE_STATUS:
+ type: object
+
+ PURE_ETHERNET_STRUCTURE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-historical-performances
+ additionalProperties: false
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - pure-ethernet-structure-capability
+ - pure-ethernet-structure-configuration
+ - pure-ethernet-structure-status
+ - pure-ethernet-structure-current-performance
+ - pure-ethernet-structure-historical-performances
+ properties:
+ pure-ethernet-structure-capability:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CAPABILITY'
+ pure-ethernet-structure-configuration:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CONFIGURATION'
+ pure-ethernet-structure-status:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_STATUS'
+ pure-ethernet-structure-current-performance:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE'
+ pure-ethernet-structure-historical-performances:
+ $ref: '#/components/schemas/PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES'
+ PURE_ETHERNET_STRUCTURE_CAPABILITY:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CONFIGURATION:
+ type: object
+ PURE_ETHERNET_STRUCTURE_STATUS:
+ type: object
+ PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE:
+ type: object
+ PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES:
+ type: object
+
+ VLAN_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ additionalProperties: false
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ - description: 'live'
+ type: object
+ required:
+ - vlan-interface-capability
+ - vlan-interface-configuration
+ properties:
+ vlan-interface-capability:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CAPABILITY'
+ vlan-interface-configuration:
+ $ref: '#/components/schemas/VLAN_INTERFACE_CONFIGURATION'
+ VLAN_INTERFACE_CAPABILITY:
+ type: object
+ VLAN_INTERFACE_CONFIGURATION:
+ type: object
+
+ WIRE_INTERFACE_PAC:
+ oneOf:
+ - description: 'cache'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-historical-performances
+ additionalProperties: false
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ - description: 'live'
+ type: object
+ required:
+ - wire-interface-capability
+ - wire-interface-configuration
+ - wire-interface-status
+ - wire-interface-current-performance
+ - wire-interface-historical-performances
+ properties:
+ wire-interface-capability:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CAPABILITY'
+ wire-interface-configuration:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CONFIGURATION'
+ wire-interface-status:
+ $ref: '#/components/schemas/WIRE_INTERFACE_STATUS'
+ wire-interface-current-performance:
+ $ref: '#/components/schemas/WIRE_INTERFACE_CURRENT_PERFORMANCE'
+ wire-interface-historical-performances:
+ $ref: '#/components/schemas/WIRE_INTERFACE_HISTORICAL_PERFORMANCES'
+ WIRE_INTERFACE_CAPABILITY:
+ type: object
+ WIRE_INTERFACE_CONFIGURATION:
+ type: object
+ WIRE_INTERFACE_STATUS:
+ type: object
+ WIRE_INTERFACE_CURRENT_PERFORMANCE:
+ type: object
+ WIRE_INTERFACE_HISTORICAL_PERFORMANCES:
+ type: object
+ IP_INTERFACE_PAC:
+ type: object
+ required:
+ - ip-interface-capability
+ - ip-interface-configuration
+ - ip-interface-status
+ properties:
+ ip-interface-capability:
+ $ref: '#/components/schemas/IP_INTERFACE_CAPABILITY'
+ ip-interface-configuration:
+ $ref: '#/components/schemas/IP_INTERFACE_CONFIGURATION'
+ ip-interface-status:
+ $ref: '#/components/schemas/IP_INTERFACE_STATUS'
+ IP_INTERFACE_CAPABILITY:
+ type: object
+ IP_INTERFACE_CONFIGURATION:
+ type: object
+ IP_INTERFACE_STATUS:
+ type: object
+
+ TDM_CONTAINER_PAC:
+ type: object
+ required:
+ - tdm-container-capability
+ - tdm-container-configuration
+ - tdm-container-status
+ properties:
+ tdm-container-capability:
+ $ref: '#/components/schemas/TDM_CONTAINER_CAPABILITY'
+ tdm-container-configuration:
+ $ref: '#/components/schemas/TDM_CONTAINER_CONFIGURATION'
+ tdm-container-status:
+ $ref: '#/components/schemas/TDM_CONTAINER_STATUS'
+ TDM_CONTAINER_CAPABILITY:
+ type: object
+ TDM_CONTAINER_CONFIGURATION:
+ type: object
+ TDM_CONTAINER_STATUS:
+ type: object
+
+ securitySchemes:
+ apiKeyAuth:
+ type: apiKey
+ in: header
+ name: operation-key
+ basicAuth:
+ type: http
+ scheme: basic