diff --git a/Z_WIP_TestingPrep/oas_services_testing_prep.yaml b/Z_WIP_TestingPrep/oas_services_testing_prep.yaml
deleted file mode 100644
index 41bf780..0000000
--- a/Z_WIP_TestingPrep/oas_services_testing_prep.yaml
+++ /dev/null
@@ -1,759 +0,0 @@
-
- /v1/add-controller:
- parameters:
- - $ref: '#/components/parameters/user'
- - $ref: '#/components/parameters/originator'
- - $ref: '#/components/parameters/x-correlator'
- - $ref: '#/components/parameters/trace-indicator'
- - $ref: '#/components/parameters/customer-journey'
- post:
- operationId: addController
- summary: 'Creates Tcp-, Http- and OperationClients of additional ODLn from OdlTemplate and adds FcPorts to the FCs of the callbacks section'
- tags:
- - IndividualServices
- security:
- - apiKeyAuth: []
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - controller-name
- - controller-release
- - controller-protocol
- - controller-address
- - controller-port
- properties:
- controller-name:
- type: string
- pattern: '^OpenDayLight([0-9]{1,2})$'
- controller-release:
- type: string
- pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
- controller-protocol:
- type: string
- enum:
- - 'HTTP'
- - 'HTTPS'
- controller-address:
- type: object
- minProperties: 1
- maxProperties: 1
- additionalProperties: false
- properties:
- ip-address:
- type: object
- minProperties: 1
- additionalProperties: false
- properties:
- ipv-4-address:
- type: string
- pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
- domain-name:
- type: string
- pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
- controller-port:
- type: integer
- minimum: 0
- maximum: 65535
- example:
- controller-name: 'OpenDayLight2'
- controller-release: '4.0.2'
- controller-protocol: 'HTTP'
- controller-address:
- ip-address:
- ipv-4-address: '1.1.1.2'
- controller-port: 1002
- responses:
- '204':
- description: 'Tcp-, Http- and OperationClients of ODLn created and connected by FcPorts'
- '400':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '401':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '403':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '404':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '500':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- default:
- $ref: '#/components/responses/responseForErroredServiceRequests'
-
- /v1/listen-to-controllers:
- parameters:
- - $ref: '#/components/parameters/user'
- - $ref: '#/components/parameters/originator'
- - $ref: '#/components/parameters/x-correlator'
- - $ref: '#/components/parameters/trace-indicator'
- - $ref: '#/components/parameters/customer-journey'
- post:
- operationId: listenToControllers
- summary: 'Establishes event streams for controller and device notifications at all ODLn by initiating the callbacks defined by /v1/add-controller'
- tags:
- - IndividualServices
- security:
- - apiKeyAuth: []
- responses:
- '204':
- description: 'Event streams for controller and device notifications established at all ODLn'
- '400':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '401':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '403':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '404':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '500':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- default:
- $ref: '#/components/responses/responseForErroredServiceRequests'
-
- /v1/remove-controller:
- parameters:
- - $ref: '#/components/parameters/user'
- - $ref: '#/components/parameters/originator'
- - $ref: '#/components/parameters/x-correlator'
- - $ref: '#/components/parameters/trace-indicator'
- - $ref: '#/components/parameters/customer-journey'
- post:
- operationId: removeController
- summary: 'Removes FcPorts from FCs of the callbacks at /v1/add-controller and deletes Operation-, Http- and TcpClients of ODLn'
- tags:
- - IndividualServices
- security:
- - apiKeyAuth: []
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - controller-name
- - controller-release
- properties:
- controller-name:
- type: string
- pattern: '^OpenDayLight([0-9]{1,2})$'
- controller-release:
- type: string
- pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
- example:
- controller-name: 'OpenDayLight2'
- controller-release: '4.0.2'
- responses:
- '204':
- description: 'FcPorts, Operation-, Http- and TcpClients of ODLn removed'
-
- /v1/notify-controller-attribute-value-changes:
- parameters:
- - $ref: '#/components/parameters/user'
- - $ref: '#/components/parameters/originator'
- - $ref: '#/components/parameters/x-correlator'
- - $ref: '#/components/parameters/trace-indicator'
- - $ref: '#/components/parameters/customer-journey'
- post:
- operationId: notifyControllerAttributeValueChanges
- summary: 'Offers subscription for notifications about changes of attributes at the controllers'
- tags:
- - IndividualServices
- security:
- - apiKeyAuth: []
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - subscribing-application-name
- - subscribing-application-release
- - subscribing-application-protocol
- - subscribing-application-address
- - subscribing-application-port
- - notifications-receiving-operation
- properties:
- subscribing-application-name:
- type: string
- subscribing-application-release:
- type: string
- pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
- subscribing-application-protocol:
- type: string
- enum:
- - 'HTTP'
- - 'HTTPS'
- subscribing-application-address:
- type: object
- minProperties: 1
- maxProperties: 1
- additionalProperties: false
- properties:
- ip-address:
- type: object
- minProperties: 1
- additionalProperties: false
- properties:
- ipv-4-address:
- type: string
- pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
- domain-name:
- type: string
- pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
- subscribing-application-port:
- type: integer
- minimum: 0
- maximum: 65535
- notifications-receiving-operation:
- type: string
- minLength: 6
- example:
- subscribing-application-name: 'MicroWaveDeviceInventory'
- subscribing-application-release: '1.0.0'
- subscribing-application-protocol: 'HTTP'
- subscribing-application-address:
- ip-address:
- ipv-4-address: '1.1.4.4'
- subscribing-application-port: 4004
- notifications-receiving-operation: '/v1/regard-controller-attribute-value-change'
- responses:
- '204':
- description: 'Subscription for notifications about changes of attributes at the controllers created'
- '400':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '401':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '403':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '404':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '500':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- default:
- $ref: '#/components/responses/responseForErroredServiceRequests'
-
- /v1/notify-controller-object-creations:
- parameters:
- - $ref: '#/components/parameters/user'
- - $ref: '#/components/parameters/originator'
- - $ref: '#/components/parameters/x-correlator'
- - $ref: '#/components/parameters/trace-indicator'
- - $ref: '#/components/parameters/customer-journey'
- post:
- operationId: notifyControllerObjectCreations
- summary: 'Offers subscription for notifications about object creations at the controllers'
- tags:
- - IndividualServices
- security:
- - apiKeyAuth: []
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - subscribing-application-name
- - subscribing-application-release
- - subscribing-application-protocol
- - subscribing-application-address
- - subscribing-application-port
- - notifications-receiving-operation
- properties:
- subscribing-application-name:
- type: string
- subscribing-application-release:
- type: string
- pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
- subscribing-application-protocol:
- type: string
- enum:
- - 'HTTP'
- - 'HTTPS'
- subscribing-application-address:
- type: object
- minProperties: 1
- maxProperties: 1
- additionalProperties: false
- properties:
- ip-address:
- type: object
- minProperties: 1
- additionalProperties: false
- properties:
- ipv-4-address:
- type: string
- pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
- domain-name:
- type: string
- pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
- subscribing-application-port:
- type: integer
- minimum: 0
- maximum: 65535
- notifications-receiving-operation:
- type: string
- minLength: 6
- example:
- subscribing-application-name: 'MicroWaveDeviceInventory'
- subscribing-application-release: '1.0.0'
- subscribing-application-protocol: 'HTTP'
- subscribing-application-address:
- ip-address:
- ipv-4-address: '1.1.4.4'
- subscribing-application-port: 4004
- notifications-receiving-operation: '/v1/regard-controller-object-creation'
- responses:
- '204':
- description: 'Subscription for notifications about object creations at the controllers created'
- '400':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '401':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '403':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '404':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '500':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- default:
- $ref: '#/components/responses/responseForErroredServiceRequests'
-
- /v1/notify-controller-object-deletions:
- parameters:
- - $ref: '#/components/parameters/user'
- - $ref: '#/components/parameters/originator'
- - $ref: '#/components/parameters/x-correlator'
- - $ref: '#/components/parameters/trace-indicator'
- - $ref: '#/components/parameters/customer-journey'
- post:
- operationId: notifyControllerObjectDeletions
- summary: 'Offers subscription for notifications about object deletions at the controllers'
- tags:
- - IndividualServices
- security:
- - apiKeyAuth: []
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - subscribing-application-name
- - subscribing-application-release
- - subscribing-application-protocol
- - subscribing-application-address
- - subscribing-application-port
- - notifications-receiving-operation
- properties:
- subscribing-application-name:
- type: string
- subscribing-application-release:
- type: string
- pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
- subscribing-application-protocol:
- type: string
- enum:
- - 'HTTP'
- - 'HTTPS'
- subscribing-application-address:
- type: object
- minProperties: 1
- maxProperties: 1
- additionalProperties: false
- properties:
- ip-address:
- type: object
- minProperties: 1
- additionalProperties: false
- properties:
- ipv-4-address:
- type: string
- pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
- domain-name:
- type: string
- pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
- subscribing-application-port:
- type: integer
- minimum: 0
- maximum: 65535
- notifications-receiving-operation:
- type: string
- minLength: 6
- example:
- subscribing-application-name: 'MicroWaveDeviceInventory'
- subscribing-application-release: '1.0.0'
- subscribing-application-protocol: 'HTTP'
- subscribing-application-address:
- ip-address:
- ipv-4-address: '1.1.4.4'
- subscribing-application-port: 4004
- notifications-receiving-operation: '/v1/regard-controller-object-deletion'
- responses:
- '204':
- description: 'Subscription for notifications about object deletions at the controllers created'
- '400':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '401':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '403':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '404':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '500':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- default:
- $ref: '#/components/responses/responseForErroredServiceRequests'
-
- /v1/notify-device-alarms:
- parameters:
- - $ref: '#/components/parameters/user'
- - $ref: '#/components/parameters/originator'
- - $ref: '#/components/parameters/x-correlator'
- - $ref: '#/components/parameters/trace-indicator'
- - $ref: '#/components/parameters/customer-journey'
- post:
- operationId: notifyDeviceAlarms
- summary: 'Offers subscription for notifications about alarms at the devices'
- tags:
- - IndividualServices
- security:
- - apiKeyAuth: []
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - subscribing-application-name
- - subscribing-application-release
- - subscribing-application-protocol
- - subscribing-application-address
- - subscribing-application-port
- - notifications-receiving-operation
- properties:
- subscribing-application-name:
- type: string
- subscribing-application-release:
- type: string
- pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
- subscribing-application-protocol:
- type: string
- enum:
- - 'HTTP'
- - 'HTTPS'
- subscribing-application-address:
- type: object
- minProperties: 1
- maxProperties: 1
- additionalProperties: false
- properties:
- ip-address:
- type: object
- minProperties: 1
- additionalProperties: false
- properties:
- ipv-4-address:
- type: string
- pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
- domain-name:
- type: string
- pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
- subscribing-application-port:
- type: integer
- minimum: 0
- maximum: 65535
- notifications-receiving-operation:
- type: string
- minLength: 6
- example:
- subscribing-application-name: 'MicroWaveDeviceInventory'
- subscribing-application-release: '1.0.0'
- subscribing-application-protocol: 'HTTP'
- subscribing-application-address:
- ip-address:
- ipv-4-address: '1.1.4.4'
- subscribing-application-port: 4004
- notifications-receiving-operation: '/v1/regard-device-alarm'
- responses:
- '204':
- description: 'Subscription for notifications about alarms at the devices created'
- '400':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '401':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '403':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '404':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '500':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- default:
- $ref: '#/components/responses/responseForErroredServiceRequests'
-
- /v1/notify-device-attribute-value-changes:
- parameters:
- - $ref: '#/components/parameters/user'
- - $ref: '#/components/parameters/originator'
- - $ref: '#/components/parameters/x-correlator'
- - $ref: '#/components/parameters/trace-indicator'
- - $ref: '#/components/parameters/customer-journey'
- post:
- operationId: notifyDeviceAttributeValueChanges
- summary: 'Offers subscription for notifications about changes of attributes at the devices'
- tags:
- - IndividualServices
- security:
- - apiKeyAuth: []
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - subscribing-application-name
- - subscribing-application-release
- - subscribing-application-protocol
- - subscribing-application-address
- - subscribing-application-port
- - notifications-receiving-operation
- properties:
- subscribing-application-name:
- type: string
- subscribing-application-release:
- type: string
- pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
- subscribing-application-protocol:
- type: string
- enum:
- - 'HTTP'
- - 'HTTPS'
- subscribing-application-address:
- type: object
- minProperties: 1
- maxProperties: 1
- additionalProperties: false
- properties:
- ip-address:
- type: object
- minProperties: 1
- additionalProperties: false
- properties:
- ipv-4-address:
- type: string
- pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
- domain-name:
- type: string
- pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
- subscribing-application-port:
- type: integer
- minimum: 0
- maximum: 65535
- notifications-receiving-operation:
- type: string
- minLength: 6
- example:
- subscribing-application-name: 'MicroWaveDeviceInventory'
- subscribing-application-release: '1.0.0'
- subscribing-application-protocol: 'HTTP'
- subscribing-application-address:
- ip-address:
- ipv-4-address: '1.1.4.4'
- subscribing-application-port: 4004
- notifications-receiving-operation: '/v1/regard-device-attribute-value-change'
- responses:
- '204':
- description: 'Subscription for notifications about changes of attributes at the devices created'
- '400':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '401':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '403':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '404':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '500':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- default:
- $ref: '#/components/responses/responseForErroredServiceRequests'
-
- /v1/notify-device-object-creations:
- parameters:
- - $ref: '#/components/parameters/user'
- - $ref: '#/components/parameters/originator'
- - $ref: '#/components/parameters/x-correlator'
- - $ref: '#/components/parameters/trace-indicator'
- - $ref: '#/components/parameters/customer-journey'
- post:
- operationId: notifyDeviceObjectCreations
- summary: 'Offers subscription for notifications about object creations at the devices'
- tags:
- - IndividualServices
- security:
- - apiKeyAuth: []
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - subscribing-application-name
- - subscribing-application-release
- - subscribing-application-protocol
- - subscribing-application-address
- - subscribing-application-port
- - notifications-receiving-operation
- properties:
- subscribing-application-name:
- type: string
- subscribing-application-release:
- type: string
- pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
- subscribing-application-protocol:
- type: string
- enum:
- - 'HTTP'
- - 'HTTPS'
- subscribing-application-address:
- type: object
- minProperties: 1
- maxProperties: 1
- additionalProperties: false
- properties:
- ip-address:
- type: object
- minProperties: 1
- additionalProperties: false
- properties:
- ipv-4-address:
- type: string
- pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
- domain-name:
- type: string
- pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
- subscribing-application-port:
- type: integer
- minimum: 0
- maximum: 65535
- notifications-receiving-operation:
- type: string
- minLength: 6
- example:
- subscribing-application-name: 'MicroWaveDeviceInventory'
- subscribing-application-release: '1.0.0'
- subscribing-application-protocol: 'HTTP'
- subscribing-application-address:
- ip-address:
- ipv-4-address: '1.1.4.4'
- subscribing-application-port: 4004
- notifications-receiving-operation: '/v1/regard-device-object-creation'
- responses:
- '204':
- description: 'Subscription for notifications about object creations at the devices created'
- '400':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '401':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '403':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '404':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '500':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- default:
- $ref: '#/components/responses/responseForErroredServiceRequests'
-
- /v1/notify-device-object-deletions:
- parameters:
- - $ref: '#/components/parameters/user'
- - $ref: '#/components/parameters/originator'
- - $ref: '#/components/parameters/x-correlator'
- - $ref: '#/components/parameters/trace-indicator'
- - $ref: '#/components/parameters/customer-journey'
- post:
- operationId: notifyDeviceObjectDeletions
- summary: 'Offers subscription for notifications about object deletions at the devices'
- tags:
- - IndividualServices
- security:
- - apiKeyAuth: []
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - subscribing-application-name
- - subscribing-application-release
- - subscribing-application-protocol
- - subscribing-application-address
- - subscribing-application-port
- - notifications-receiving-operation
- properties:
- subscribing-application-name:
- type: string
- subscribing-application-release:
- type: string
- pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
- subscribing-application-protocol:
- type: string
- enum:
- - 'HTTP'
- - 'HTTPS'
- subscribing-application-address:
- type: object
- minProperties: 1
- maxProperties: 1
- additionalProperties: false
- properties:
- ip-address:
- type: object
- minProperties: 1
- additionalProperties: false
- properties:
- ipv-4-address:
- type: string
- pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
- domain-name:
- type: string
- pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
- subscribing-application-port:
- type: integer
- minimum: 0
- maximum: 65535
- notifications-receiving-operation:
- type: string
- minLength: 6
- example:
- subscribing-application-name: 'MicroWaveDeviceInventory'
- subscribing-application-release: '1.0.0'
- subscribing-application-protocol: 'HTTP'
- subscribing-application-address:
- ip-address:
- ipv-4-address: '1.1.4.4'
- subscribing-application-port: 4004
- notifications-receiving-operation: '/v1/regard-device-object-deletion'
- responses:
- '204':
- description: 'Subscription for notifications about object deletions at the devices created'
- '400':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '401':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '403':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '404':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- '500':
- $ref: '#/components/responses/responseForErroredServiceRequests'
- default:
- $ref: '#/components/responses/responseForErroredServiceRequests'
diff --git a/testing/2_functional/completeness/v1.1.0/diagrams/NotificationProxy+diagram.completeness.plantuml b/testing/2_functional/completeness/v1.1.0/diagrams/NotificationProxy+diagram.completeness.plantuml
index b61055f..91069a1 100644
--- a/testing/2_functional/completeness/v1.1.0/diagrams/NotificationProxy+diagram.completeness.plantuml
+++ b/testing/2_functional/completeness/v1.1.0/diagrams/NotificationProxy+diagram.completeness.plantuml
@@ -22,14 +22,14 @@ participant "/v1/notify-device-object-deletions" as notifyDOD #LightBlue
group Preparation
- Data --\\o Postman : {servers, collectionInput (controllerInfo, subscriberInfo)}
+ Data --\\o Postman : {servers, collectionInput}
activate Postman
Postman --\\o Collection : {servers, collectionInput}
end
group /v1/add-controller
- Collection --\\o Postman: {servers, controllerInfo}
- Postman -> addCtrl: {controllerInfo}
+ Collection --\\o Postman: {servers}
+ Postman -> addCtrl: {dummyControllerInfo}
addCtrl <-- Postman: ResponseCode
note right Postman #Orange
check for ResponseCode == 204
@@ -46,8 +46,8 @@ group /v1/listen-to-controllers
end
group /v1/remove-controller
- Collection --\\o Postman: {servers, controllerInfo}
- Postman -> removeCtrl: {controllerInfo}
+ Collection --\\o Postman: {servers}
+ Postman -> removeCtrl: {dummyControllerInfo}
removeCtrl <-- Postman: ResponseCode
note right Postman #Orange
check for ResponseCode == 204
@@ -55,8 +55,8 @@ group /v1/remove-controller
end
group /v1/notify-controller-attribute-value-changes
- Collection --\\o Postman: {servers, subscriberInfo}
- Postman -> notifyCAVC: {subscriberInfo}
+ Collection --\\o Postman: {servers}
+ Postman -> notifyCAVC: {dummySubscriberInfo}
notifyCAVC <-- Postman: ResponseCode
note right Postman #Orange
check for ResponseCode == 204
@@ -64,8 +64,8 @@ group /v1/notify-controller-attribute-value-changes
end
group /v1/notify-controller-object-creations
- Collection --\\o Postman: {servers, subscriberInfo}
- Postman -> notifyCOC: {subscriberInfo}
+ Collection --\\o Postman: {servers}
+ Postman -> notifyCOC: {dummySubscriberInfo}
notifyCOC <-- Postman: ResponseCode
note right Postman #Orange
check for ResponseCode == 204
@@ -73,8 +73,8 @@ group /v1/notify-controller-object-creations
end
group /v1/notify-controller-object-deletions
- Collection --\\o Postman: {servers, subscriberInfo}
- Postman -> notifyCOD: {subscriberInfo}
+ Collection --\\o Postman: {servers}
+ Postman -> notifyCOD: {dummySubscriberInfo}
notifyCOD <-- Postman: ResponseCode
note right Postman #Orange
check for ResponseCode == 204
@@ -82,8 +82,8 @@ group /v1/notify-controller-object-deletions
end
group /v1/notify-device-alarms
- Collection --\\o Postman: {servers, subscriberInfo}
- Postman -> notifyAlarm: {subscriberInfo}
+ Collection --\\o Postman: {servers}
+ Postman -> notifyAlarm: {dummySubscriberInfo}
notifyAlarm <-- Postman: ResponseCode
note right Postman #Orange
check for ResponseCode == 204
@@ -91,8 +91,8 @@ group /v1/notify-device-alarms
end
group /v1/notify-device-attribute-value-changes
- Collection --\\o Postman: {servers, subscriberInfo}
- Postman -> notifyDAVC: {subscriberInfo}
+ Collection --\\o Postman: {servers}
+ Postman -> notifyDAVC: {dummySubscriberInfo}
notifyDAVC <-- Postman: ResponseCode
note right Postman #Orange
check for ResponseCode == 204
@@ -100,8 +100,8 @@ group /v1/notify-device-attribute-value-changes
end
group /v1/notify-device-object-creations
- Collection --\\o Postman: {servers, subscriberInfo}
- Postman -> notifyDOC: {subscriberInfo}
+ Collection --\\o Postman: {servers}
+ Postman -> notifyDOC: {dummySubscriberInfo}
notifyDOC <-- Postman: ResponseCode
note right Postman #Orange
check for ResponseCode == 204
@@ -109,8 +109,8 @@ group /v1/notify-device-object-creations
end
group /v1/notify-device-object-deletions
- Collection --\\o Postman: {servers, subscriberInfo}
- Postman -> notifyDOD: {subscriberInfo}
+ Collection --\\o Postman: {servers}
+ Postman -> notifyDOD: {dummySubscriberInfo}
notifyDOD <-- Postman: ResponseCode
note right Postman #Orange
check for ResponseCode == 204
diff --git a/testing/2_functional/completeness/v1.1.0/diagrams/NotificationProxy+diagram.completeness.png b/testing/2_functional/completeness/v1.1.0/diagrams/NotificationProxy+diagram.completeness.png
index dd7b77b..80a3861 100644
Binary files a/testing/2_functional/completeness/v1.1.0/diagrams/NotificationProxy+diagram.completeness.png and b/testing/2_functional/completeness/v1.1.0/diagrams/NotificationProxy+diagram.completeness.png differ
diff --git a/testing/2_functional/invalidOrMissingRequestBody/README.md b/testing/2_functional/invalidOrMissingRequestBody/README.md
new file mode 100644
index 0000000..1e02d9c
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/README.md
@@ -0,0 +1,8 @@
+# Testing for invalidOrMissingRequestBody
+
+## Components
+
+
+
+## v1.1.0
+
diff --git a/testing/2_functional/invalidOrMissingRequestBody/diagrams/np-invalidOrMissingRequestBody-components.plantuml b/testing/2_functional/invalidOrMissingRequestBody/diagrams/np-invalidOrMissingRequestBody-components.plantuml
new file mode 100644
index 0000000..44eb3b8
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/diagrams/np-invalidOrMissingRequestBody-components.plantuml
@@ -0,0 +1,17 @@
+@startuml np-invalidOrMissingRequestBody-components
+
+skinparam componentStyle rectangle
+
+title
+NotificationProxy+test.functional.invalidOrMissingRequestBody
+end title
+
+package "invalidOrMissingRequestBody" {
+ component [Postman\n\nNotificationProxy+test.invalidOrMissingRequestBody.json] as TCC #Orange
+ component [Application under Test\n\nNotificationProxy] as AUT #LightBlue
+
+ TCC -> AUT
+
+}
+
+@enduml
\ No newline at end of file
diff --git a/testing/2_functional/invalidOrMissingRequestBody/diagrams/np-invalidOrMissingRequestBody-components.png b/testing/2_functional/invalidOrMissingRequestBody/diagrams/np-invalidOrMissingRequestBody-components.png
new file mode 100644
index 0000000..84e3303
Binary files /dev/null and b/testing/2_functional/invalidOrMissingRequestBody/diagrams/np-invalidOrMissingRequestBody-components.png differ
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/diagrams/NotificationProxy+diagram.invalidOrMissingRequestBody.plantuml b/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/diagrams/NotificationProxy+diagram.invalidOrMissingRequestBody.plantuml
new file mode 100644
index 0000000..75cf7e4
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/diagrams/NotificationProxy+diagram.invalidOrMissingRequestBody.plantuml
@@ -0,0 +1,112 @@
+@startuml NotificationProxy+diagram.invalidOrMissingRequestBody
+skinparam responseMessageBelowArrow true
+
+title
+NotificationProxy+test.invalidOrMissingRequestBody
+end title
+
+participant "Postman\n" as Postman #Orange
+participant "Data\n" as Data
+participant "Collection\n" as Collection
+
+participant "/v1/add-controller" as addCtrl #LightBlue
+participant "/v1/remove-controller" as removeCtrl #LightBlue
+participant "/v1/notify-controller-attribute-value-changes" as notifyCAVC #LightBlue
+participant "/v1/notify-controller-object-creations" as notifyCOC #LightBlue
+participant "/v1/notify-controller-object-deletions" as notifyCOD #LightBlue
+participant "/v1/notify-device-alarms" as notifyAlarm #LightBlue
+participant "/v1/notify-device-attribute-value-changes" as notifyDAVC #LightBlue
+participant "/v1/notify-device-object-creations" as notifyDOC #LightBlue
+participant "/v1/notify-device-object-deletions" as notifyDOD #LightBlue
+
+
+group Preparation
+ Data --\\o Postman : {servers, collectionInput}
+ activate Postman
+ Postman --\\o Collection : {servers, collectionInput}
+end
+
+group /v1/add-controller
+ Collection --\\o Postman: {servers}
+ Postman -> addCtrl: {1. missing requestBody \n2. invalid requestBody}
+ addCtrl <-- Postman: ResponseCode
+ note right Postman #Orange
+ check for ResponseCode == 400
+ end note
+end
+
+group /v1/remove-controller
+ Collection --\\o Postman: {servers}
+ Postman -> removeCtrl: {1. missing requestBody \n2. invalid requestBody}
+ removeCtrl <-- Postman: ResponseCode
+ note right Postman #Orange
+ check for ResponseCode == 400
+ end note
+end
+
+group /v1/notify-controller-attribute-value-changes
+ Collection --\\o Postman: {servers}
+ Postman -> notifyCAVC: {1. missing requestBody \n2. invalid requestBody}
+ notifyCAVC <-- Postman: ResponseCode
+ note right Postman #Orange
+ check for ResponseCode == 400
+ end note
+end
+
+group /v1/notify-controller-object-creations
+ Collection --\\o Postman: {servers}
+ Postman -> notifyCOC: {1. missing requestBody \n2. invalid requestBody}
+ notifyCOC <-- Postman: ResponseCode
+ note right Postman #Orange
+ check for ResponseCode == 400
+ end note
+end
+
+group /v1/notify-controller-object-deletions
+ Collection --\\o Postman: {servers}
+ Postman -> notifyCOD: {1. missing requestBody \n2. invalid requestBody}
+ notifyCOD <-- Postman: ResponseCode
+ note right Postman #Orange
+ check for ResponseCode == 400
+ end note
+end
+
+group /v1/notify-device-alarms
+ Collection --\\o Postman: {servers}
+ Postman -> notifyAlarm: {1. missing requestBody \n2. invalid requestBody}
+ notifyAlarm <-- Postman: ResponseCode
+ note right Postman #Orange
+ check for ResponseCode == 400
+ end note
+end
+
+group /v1/notify-device-attribute-value-changes
+ Collection --\\o Postman: {servers}
+ Postman -> notifyDAVC: {1. missing requestBody \n2. invalid requestBody}
+ notifyDAVC <-- Postman: ResponseCode
+ note right Postman #Orange
+ check for ResponseCode == 400
+ end note
+end
+
+group /v1/notify-device-object-creations
+ Collection --\\o Postman: {servers}
+ Postman -> notifyDOC: {1. missing requestBody \n2. invalid requestBody}
+ notifyDOC <-- Postman: ResponseCode
+ note right Postman #Orange
+ check for ResponseCode == 400
+ end note
+end
+
+group /v1/notify-device-object-deletions
+ Collection --\\o Postman: {servers}
+ Postman -> notifyDOD: {1. missing requestBody \n2. invalid requestBody}
+ notifyDOD <-- Postman: ResponseCode
+ note right Postman #Orange
+ check for ResponseCode == 400
+ end note
+end
+
+deactivate Postman
+
+@enduml
\ No newline at end of file
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/diagrams/NotificationProxy+diagram.invalidOrMissingRequestBody.png b/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/diagrams/NotificationProxy+diagram.invalidOrMissingRequestBody.png
new file mode 100644
index 0000000..b8e1d42
Binary files /dev/null and b/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/diagrams/NotificationProxy+diagram.invalidOrMissingRequestBody.png differ
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/simulators/NetExplorerProxy+simu.yaml b/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/simulators/NetExplorerProxy+simu.yaml
new file mode 100644
index 0000000..533252b
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/simulators/NetExplorerProxy+simu.yaml
@@ -0,0 +1,1330 @@
+openapi: 3.0.0
+info:
+ title: NP_1.1.0+simulator.invalidOrMissingRequestBody
+ version: 1.0.0
+
+paths:
+########################################################################################################################
+# Service Layer - Individual part
+# NP_1.1.0+simulator.invalidOrMissingRequestBody in static reference mode
+########################################################################################################################
+
+ /v1/add-controller:
+ parameters:
+ - $ref: '#/components/parameters/user'
+ - $ref: '#/components/parameters/originator'
+ - $ref: '#/components/parameters/x-correlator'
+ - $ref: '#/components/parameters/trace-indicator'
+ - $ref: '#/components/parameters/customer-journey'
+ post:
+ operationId: addController
+ summary: 'Creates Tcp-, Http- and OperationClients of additional ODLn from OdlTemplate and adds FcPorts to the FCs of the callbacks section'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - controller-name
+ - controller-release
+ - controller-protocol
+ - controller-address
+ - controller-port
+ properties:
+ controller-name:
+ type: string
+ pattern: '^OpenDayLight([0-9]{1,2})$'
+ controller-release:
+ type: string
+ pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
+ controller-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ controller-address:
+ type: object
+ minProperties: 1
+ maxProperties: 1
+ additionalProperties: false
+ properties:
+ ip-address:
+ type: object
+ minProperties: 1
+ additionalProperties: false
+ properties:
+ ipv-4-address:
+ type: string
+ pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
+ domain-name:
+ type: string
+ pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
+ controller-port:
+ type: integer
+ minimum: 0
+ maximum: 65535
+ example:
+ controller-name: 'OpenDayLight2'
+ controller-release: '4.0.2'
+ controller-protocol: 'HTTP'
+ controller-address:
+ ip-address:
+ ipv-4-address: '1.1.1.2'
+ controller-port: 1002
+ responses:
+ '400':
+ $ref: '#/components/responses/responseForErroredServiceRequests'
+
+ /v1/remove-controller:
+ parameters:
+ - $ref: '#/components/parameters/user'
+ - $ref: '#/components/parameters/originator'
+ - $ref: '#/components/parameters/x-correlator'
+ - $ref: '#/components/parameters/trace-indicator'
+ - $ref: '#/components/parameters/customer-journey'
+ post:
+ operationId: removeController
+ summary: 'Removes FcPorts from FCs of the callbacks at /v1/add-controller and deletes Operation-, Http- and TcpClients of ODLn'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - controller-name
+ - controller-release
+ properties:
+ controller-name:
+ type: string
+ pattern: '^OpenDayLight([0-9]{1,2})$'
+ controller-release:
+ type: string
+ pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
+ example:
+ controller-name: 'OpenDayLight2'
+ controller-release: '4.0.2'
+ responses:
+ '400':
+ $ref: '#/components/responses/responseForErroredServiceRequests'
+
+ /v1/notify-controller-attribute-value-changes:
+ parameters:
+ - $ref: '#/components/parameters/user'
+ - $ref: '#/components/parameters/originator'
+ - $ref: '#/components/parameters/x-correlator'
+ - $ref: '#/components/parameters/trace-indicator'
+ - $ref: '#/components/parameters/customer-journey'
+ post:
+ operationId: notifyControllerAttributeValueChanges
+ summary: 'Offers subscription for notifications about changes of attributes at the controllers'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscribing-application-name
+ - subscribing-application-release
+ - subscribing-application-protocol
+ - subscribing-application-address
+ - subscribing-application-port
+ - notifications-receiving-operation
+ properties:
+ subscribing-application-name:
+ type: string
+ subscribing-application-release:
+ type: string
+ pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
+ subscribing-application-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscribing-application-address:
+ type: object
+ minProperties: 1
+ maxProperties: 1
+ additionalProperties: false
+ properties:
+ ip-address:
+ type: object
+ minProperties: 1
+ additionalProperties: false
+ properties:
+ ipv-4-address:
+ type: string
+ pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
+ domain-name:
+ type: string
+ pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
+ subscribing-application-port:
+ type: integer
+ minimum: 0
+ maximum: 65535
+ notifications-receiving-operation:
+ type: string
+ minLength: 6
+ example:
+ subscribing-application-name: 'MicroWaveDeviceInventory'
+ subscribing-application-release: '1.0.0'
+ subscribing-application-protocol: 'HTTP'
+ subscribing-application-address:
+ ip-address:
+ ipv-4-address: '1.1.4.4'
+ subscribing-application-port: 4004
+ notifications-receiving-operation: '/v1/regard-controller-attribute-value-change'
+ responses:
+ '400':
+ $ref: '#/components/responses/responseForErroredServiceRequests'
+
+ /v1/notify-controller-object-creations:
+ parameters:
+ - $ref: '#/components/parameters/user'
+ - $ref: '#/components/parameters/originator'
+ - $ref: '#/components/parameters/x-correlator'
+ - $ref: '#/components/parameters/trace-indicator'
+ - $ref: '#/components/parameters/customer-journey'
+ post:
+ operationId: notifyControllerObjectCreations
+ summary: 'Offers subscription for notifications about object creations at the controllers'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscribing-application-name
+ - subscribing-application-release
+ - subscribing-application-protocol
+ - subscribing-application-address
+ - subscribing-application-port
+ - notifications-receiving-operation
+ properties:
+ subscribing-application-name:
+ type: string
+ subscribing-application-release:
+ type: string
+ pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
+ subscribing-application-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscribing-application-address:
+ type: object
+ minProperties: 1
+ maxProperties: 1
+ additionalProperties: false
+ properties:
+ ip-address:
+ type: object
+ minProperties: 1
+ additionalProperties: false
+ properties:
+ ipv-4-address:
+ type: string
+ pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
+ domain-name:
+ type: string
+ pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
+ subscribing-application-port:
+ type: integer
+ minimum: 0
+ maximum: 65535
+ notifications-receiving-operation:
+ type: string
+ minLength: 6
+ example:
+ subscribing-application-name: 'MicroWaveDeviceInventory'
+ subscribing-application-release: '1.0.0'
+ subscribing-application-protocol: 'HTTP'
+ subscribing-application-address:
+ ip-address:
+ ipv-4-address: '1.1.4.4'
+ subscribing-application-port: 4004
+ notifications-receiving-operation: '/v1/regard-controller-object-creation'
+ responses:
+ '400':
+ $ref: '#/components/responses/responseForErroredServiceRequests'
+
+ /v1/notify-controller-object-deletions:
+ parameters:
+ - $ref: '#/components/parameters/user'
+ - $ref: '#/components/parameters/originator'
+ - $ref: '#/components/parameters/x-correlator'
+ - $ref: '#/components/parameters/trace-indicator'
+ - $ref: '#/components/parameters/customer-journey'
+ post:
+ operationId: notifyControllerObjectDeletions
+ summary: 'Offers subscription for notifications about object deletions at the controllers'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscribing-application-name
+ - subscribing-application-release
+ - subscribing-application-protocol
+ - subscribing-application-address
+ - subscribing-application-port
+ - notifications-receiving-operation
+ properties:
+ subscribing-application-name:
+ type: string
+ subscribing-application-release:
+ type: string
+ pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
+ subscribing-application-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscribing-application-address:
+ type: object
+ minProperties: 1
+ maxProperties: 1
+ additionalProperties: false
+ properties:
+ ip-address:
+ type: object
+ minProperties: 1
+ additionalProperties: false
+ properties:
+ ipv-4-address:
+ type: string
+ pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
+ domain-name:
+ type: string
+ pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
+ subscribing-application-port:
+ type: integer
+ minimum: 0
+ maximum: 65535
+ notifications-receiving-operation:
+ type: string
+ minLength: 6
+ example:
+ subscribing-application-name: 'MicroWaveDeviceInventory'
+ subscribing-application-release: '1.0.0'
+ subscribing-application-protocol: 'HTTP'
+ subscribing-application-address:
+ ip-address:
+ ipv-4-address: '1.1.4.4'
+ subscribing-application-port: 4004
+ notifications-receiving-operation: '/v1/regard-controller-object-deletion'
+ responses:
+ '400':
+ $ref: '#/components/responses/responseForErroredServiceRequests'
+
+ /v1/notify-device-alarms:
+ parameters:
+ - $ref: '#/components/parameters/user'
+ - $ref: '#/components/parameters/originator'
+ - $ref: '#/components/parameters/x-correlator'
+ - $ref: '#/components/parameters/trace-indicator'
+ - $ref: '#/components/parameters/customer-journey'
+ post:
+ operationId: notifyDeviceAlarms
+ summary: 'Offers subscription for notifications about alarms at the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscribing-application-name
+ - subscribing-application-release
+ - subscribing-application-protocol
+ - subscribing-application-address
+ - subscribing-application-port
+ - notifications-receiving-operation
+ properties:
+ subscribing-application-name:
+ type: string
+ subscribing-application-release:
+ type: string
+ pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
+ subscribing-application-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscribing-application-address:
+ type: object
+ minProperties: 1
+ maxProperties: 1
+ additionalProperties: false
+ properties:
+ ip-address:
+ type: object
+ minProperties: 1
+ additionalProperties: false
+ properties:
+ ipv-4-address:
+ type: string
+ pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
+ domain-name:
+ type: string
+ pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
+ subscribing-application-port:
+ type: integer
+ minimum: 0
+ maximum: 65535
+ notifications-receiving-operation:
+ type: string
+ minLength: 6
+ example:
+ subscribing-application-name: 'MicroWaveDeviceInventory'
+ subscribing-application-release: '1.0.0'
+ subscribing-application-protocol: 'HTTP'
+ subscribing-application-address:
+ ip-address:
+ ipv-4-address: '1.1.4.4'
+ subscribing-application-port: 4004
+ notifications-receiving-operation: '/v1/regard-device-alarm'
+ responses:
+ '400':
+ $ref: '#/components/responses/responseForErroredServiceRequests'
+
+ /v1/notify-device-attribute-value-changes:
+ parameters:
+ - $ref: '#/components/parameters/user'
+ - $ref: '#/components/parameters/originator'
+ - $ref: '#/components/parameters/x-correlator'
+ - $ref: '#/components/parameters/trace-indicator'
+ - $ref: '#/components/parameters/customer-journey'
+ post:
+ operationId: notifyDeviceAttributeValueChanges
+ summary: 'Offers subscription for notifications about changes of attributes at the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscribing-application-name
+ - subscribing-application-release
+ - subscribing-application-protocol
+ - subscribing-application-address
+ - subscribing-application-port
+ - notifications-receiving-operation
+ properties:
+ subscribing-application-name:
+ type: string
+ subscribing-application-release:
+ type: string
+ pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
+ subscribing-application-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscribing-application-address:
+ type: object
+ minProperties: 1
+ maxProperties: 1
+ additionalProperties: false
+ properties:
+ ip-address:
+ type: object
+ minProperties: 1
+ additionalProperties: false
+ properties:
+ ipv-4-address:
+ type: string
+ pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
+ domain-name:
+ type: string
+ pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
+ subscribing-application-port:
+ type: integer
+ minimum: 0
+ maximum: 65535
+ notifications-receiving-operation:
+ type: string
+ minLength: 6
+ example:
+ subscribing-application-name: 'MicroWaveDeviceInventory'
+ subscribing-application-release: '1.0.0'
+ subscribing-application-protocol: 'HTTP'
+ subscribing-application-address:
+ ip-address:
+ ipv-4-address: '1.1.4.4'
+ subscribing-application-port: 4004
+ notifications-receiving-operation: '/v1/regard-device-attribute-value-change'
+ responses:
+ '400':
+ $ref: '#/components/responses/responseForErroredServiceRequests'
+
+ /v1/notify-device-object-creations:
+ parameters:
+ - $ref: '#/components/parameters/user'
+ - $ref: '#/components/parameters/originator'
+ - $ref: '#/components/parameters/x-correlator'
+ - $ref: '#/components/parameters/trace-indicator'
+ - $ref: '#/components/parameters/customer-journey'
+ post:
+ operationId: notifyDeviceObjectCreations
+ summary: 'Offers subscription for notifications about object creations at the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscribing-application-name
+ - subscribing-application-release
+ - subscribing-application-protocol
+ - subscribing-application-address
+ - subscribing-application-port
+ - notifications-receiving-operation
+ properties:
+ subscribing-application-name:
+ type: string
+ subscribing-application-release:
+ type: string
+ pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
+ subscribing-application-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscribing-application-address:
+ type: object
+ minProperties: 1
+ maxProperties: 1
+ additionalProperties: false
+ properties:
+ ip-address:
+ type: object
+ minProperties: 1
+ additionalProperties: false
+ properties:
+ ipv-4-address:
+ type: string
+ pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
+ domain-name:
+ type: string
+ pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
+ subscribing-application-port:
+ type: integer
+ minimum: 0
+ maximum: 65535
+ notifications-receiving-operation:
+ type: string
+ minLength: 6
+ example:
+ subscribing-application-name: 'MicroWaveDeviceInventory'
+ subscribing-application-release: '1.0.0'
+ subscribing-application-protocol: 'HTTP'
+ subscribing-application-address:
+ ip-address:
+ ipv-4-address: '1.1.4.4'
+ subscribing-application-port: 4004
+ notifications-receiving-operation: '/v1/regard-device-object-creation'
+ responses:
+ '400':
+ $ref: '#/components/responses/responseForErroredServiceRequests'
+
+ /v1/notify-device-object-deletions:
+ parameters:
+ - $ref: '#/components/parameters/user'
+ - $ref: '#/components/parameters/originator'
+ - $ref: '#/components/parameters/x-correlator'
+ - $ref: '#/components/parameters/trace-indicator'
+ - $ref: '#/components/parameters/customer-journey'
+ post:
+ operationId: notifyDeviceObjectDeletions
+ summary: 'Offers subscription for notifications about object deletions at the devices'
+ tags:
+ - IndividualServices
+ security:
+ - apiKeyAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - subscribing-application-name
+ - subscribing-application-release
+ - subscribing-application-protocol
+ - subscribing-application-address
+ - subscribing-application-port
+ - notifications-receiving-operation
+ properties:
+ subscribing-application-name:
+ type: string
+ subscribing-application-release:
+ type: string
+ pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$'
+ subscribing-application-protocol:
+ type: string
+ enum:
+ - 'HTTP'
+ - 'HTTPS'
+ subscribing-application-address:
+ type: object
+ minProperties: 1
+ maxProperties: 1
+ additionalProperties: false
+ properties:
+ ip-address:
+ type: object
+ minProperties: 1
+ additionalProperties: false
+ properties:
+ ipv-4-address:
+ type: string
+ pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
+ domain-name:
+ type: string
+ pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$'
+ subscribing-application-port:
+ type: integer
+ minimum: 0
+ maximum: 65535
+ notifications-receiving-operation:
+ type: string
+ minLength: 6
+ example:
+ subscribing-application-name: 'MicroWaveDeviceInventory'
+ subscribing-application-release: '1.0.0'
+ subscribing-application-protocol: 'HTTP'
+ subscribing-application-address:
+ ip-address:
+ ipv-4-address: '1.1.4.4'
+ subscribing-application-port: 4004
+ notifications-receiving-operation: '/v1/regard-device-object-deletion'
+ responses:
+ '400':
+ $ref: '#/components/responses/responseForErroredServiceRequests'
+
+########################################################################################################################
+# 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}$'
+ 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]+))*$'
+ 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'
+ 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'
+ 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.'
+ '550':
+ description: 'Response in case that the application wants to call a service specified by the requestor (e.g., to return data after a long taking data retrieval) during a service call to the application and the service information cannot be found.'
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - code
+ - message
+ properties:
+ code:
+ type: integer
+ minimum: 550
+ maximum: 550
+ format: int32
+ message:
+ type: string
+ enum:
+ - 'Requestor information for callback execution not found.'
+ 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=nep-1-0-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=nep-1-0-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=nep-1-0-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=nep-1-0-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=nep-1-0-2-tcp-s-000/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=nep-1-0-2-tcp-s-000/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=nep-1-0-2-tcp-s-000/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=nep-1-0-2-tcp-s-000/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=nep-1-0-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=nep-1-0-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=nep-1-0-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=nep-1-0-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
+ securitySchemes:
+ apiKeyAuth:
+ type: apiKey
+ in: header
+ name: operation-key
+ basicAuth:
+ type: http
+ scheme: basic
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/testcases/NetExplorerProxy+data.invalidOrMissingRequestBody.json b/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/testcases/NetExplorerProxy+data.invalidOrMissingRequestBody.json
new file mode 100644
index 0000000..142c2c8
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/testcases/NetExplorerProxy+data.invalidOrMissingRequestBody.json
@@ -0,0 +1,48 @@
+[
+ {
+ "mode": "debug",
+ "serverList": [
+ {
+ "serverName": "dummy",
+ "dummyUri": "ping.openBackhaul.com"
+ },
+ {
+ "serverName": "NotificationProxy",
+ "server": "http://127.0.0.1:4018",
+ "pathToControlConstruct": "",
+ "authorizationCode": "Basic ????",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "NEP_1.1.0+testcase.invalidOrMissingRequestBody",
+ "xCorrelator": "00000000-0000-0000-0000-000000000000",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ },
+ {
+ "serverName": "NotificationProxy+simu",
+ "server": "http://localhost:3003",
+ "pathToControlConstruct": "",
+ "authorizationCode": "Basic ????",
+ "operationKey": "Operation key not yet provided.",
+ "userName": "Thorsten Heinze",
+ "originator": "NEP_1.1.0+testcase.invalidOrMissingRequestBody",
+ "xCorrelator": "00000000-0000-0000-0000-000000000000",
+ "traceIndicator": "1",
+ "customerJourney": ""
+ }
+ ],
+ "collectionInputList": [
+ {
+ "collectionName": "np.invalidOrMissingRequestBody",
+ "serverToBeApplied": "NotificationProxy",
+ "kindOfReference": "dynamic"
+ },
+ {
+ "collectionName": "np_simulator.invalidOrMissingRequestBody",
+ "serverToBeApplied": "NotificationProxy+simu",
+ "kindOfReference": "static",
+ "suffixUrlEncodingIsRequired": true
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/testcases/NetExplorerProxy+test.invalidOrMissingRequestBody.json b/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/testcases/NetExplorerProxy+test.invalidOrMissingRequestBody.json
new file mode 100644
index 0000000..95c6eaa
--- /dev/null
+++ b/testing/2_functional/invalidOrMissingRequestBody/v1.1.0/testcases/NetExplorerProxy+test.invalidOrMissingRequestBody.json
@@ -0,0 +1,4776 @@
+{
+ "info": {
+ "name": "NotificationProxy_1.1.0+test.invalidOrMissingRequestBody",
+ "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(\"===== NotificationProxy+test.invalidOrMissingRequestBody ===================================================\");\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",
+ " // linkId : Telefonica LinkID of an example microwave link\r",
+ " // kindOfReference : 'dynamic' for testing against implementations, 'static' for testing against simulators\r",
+ " // suffixUrlEncodingIsRequired : e.g. Mockoon requires the suffix being url encoded, but applications vice versa\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