Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

References

Jira
serverONAP Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-2299
 

Assumptions

We would like to ask EST, to put 4 schemas into the CPS repository. In this step, we will expose a Kafka topic, which will produce the ENM adapter's CM notifications in a standard 3GPP 28.532 format. Since this is an open source format, and in the future NCMP will provide this feature, we think CPS is the best place for these schemas. eric-oss-enm-notification-adapter already using ncmp-cps-events as a 3pp, so it would be a version uplift from our side. We will provide the schema JSON files and we well need a Java class from it that we can import and use that type.

...

Issues & Decisions


IssueNotes Decision




Requirements

Functional


InterfaceRequirementAdditional InformationSignoff
1

NCMP to update CM Data Notification Event Schema to comply with 3GPP standard 

...

Issues & Decisions

...

Requirements

Functional

The 3GPP standard document we are following in our current step is: https://www.etsi.org/deliver/etsi_ts/128500_128599/128532/18.02.00_60/ts_128532v180200p.pdf#%5B%7B%22num%22%3A151%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22FitH%22%7D%2C495%5D

The 4 notification type we would like to implement:

  • notifyMOICreation - 12.1.1.4.1a.5 section in the document
  • notifyMOIDeletion - 12.1.1.4.1a.6 section in the document
  • notifyMOIAttributeValueChanges - 12.1.1.4.1a.7 in the document
  • notifyMOIChanges - 12.1.1.4.1a.8 in the document
    • MoiChange type - 12.1.1.4.1a.4 in the document

Compared to this schema: https://gerrit.onap.org/r/gitweb?p=cps.git;a=blob;f=cps-ncmp-events/src/main/resources/schemas/async/data-operation-event-schema-1.0.0.json;h=c2915187c7143a95b607805219f0645e25044282;hb=HEAD

We would like to ask the following names for our types:

notifyMOICreation - NotifyCreateChangeEvent (org.onap.cps.ncmp.events._3gpp.NotifyCreateChangeEvent, or something similar)

notifyMOIDeletion - NotifyDeleteChangeEvent (org.onap.cps.ncmp.events._3gpp.NotifyDeleteChangeEvent or something similar)

notifyMOIAttributeValueChanges - NotifyAttributeValueChangeEvent (org.onap.cps.ncmp.events._3gpp.NotifyAttributeValueChangeEvent or something similar)

notifyMOIChanges - NotifyChangeEvent (org.onap.cps.ncmp.events._3gpp.NotifyAttributeValueChangeEvent or something similar)

Code Block
title3GPP standard schemas for notifyMOICreation, notifyMOIDeletion, notifyMOIAttributeValueChanges and notifyMOIChanges
{
	"$schema": "https://json-schema.org/draft/2019-09/schema",
	"$id": "urn:cps:org.onap.cps.ncmp.events._3gpp:notify-changes-schema:1.0.0",
	"type": "object",
	"javaType": "org.onap.cps.ncmp.events._3gpp.NotifyChangesWrapper",
	"properties": {
		"CmNotificationTypes": {
			"$ref": "#/components/schemas/CmNotificationTypes"
		},
		"SourceIndicator": {
			"$ref": "#/components/schemas/SourceIndicator"
		},
		"Operation": {
			"$ref": "#/components/schemas/Operation"
		},
		"Insert": {
			"$ref": "#/components/schemas/Insert"
		},
		"NotifyCreateEvent": {
			"$ref": "#/definitions/NotifyCreateEvent"
		},
		"NotifyDeleteEvent": {
			"$ref": "#/definitions/NotifyDeleteEvent"
		},
		"NotifyAttributeValueChangeEvent": {
			"$ref": "#/definitions/NotifyAttributeValueChangeEvent"
		},
		"NotifyChangesEvent": {
			"$ref": "#/definitions/NotifyChangesEvent"
		}
	},
	"definitions": {
		"NotifyCreateEvent": {
			"$id": "urn:cps:org.onap.cps.ncmp.events._3gpp:notify-create-event-schema:1.0.0",
			"description": "The payload of notifyMOICreation event",
			"type": "object",
			"javaType": "org.onap.cps.ncmp.events._3gpp.NotifyCreateEvent",
			"properties": {
				"href": {
					"type": "string"
				},
				"notificationId": {
					"type": "integer"
				},
				"notificationType": {
					"$ref": "#/components/schemas/CmNotificationTypes",
					"const": "notifyMOICreation"
				},
				"eventTime": {
					"type": "string",
					"existingJavaType": "java.time.LocalDateTime",
					"format": "date-time"
				},
				"systemDN": {
					"type": "string"
				},
				"correlatedNotifications": {
					"type": "array",
					"items": {
						"$ref": "#/components/schemas/CorrelatedNotification"
					}
				},
				"additionalText": {
					"type": "string"
				},
				"sourceIndicator": {
					"$ref": "#/components/schemas/SourceIndicator"
				},
				"attributeList": {
					"$ref": "#/components/schemas/AttributeNameValuePairSet"
				}
			},
			"required": [
				"href",
				"notificationId",
				"notificationType",
				"eventTime",
				"systemDN"
			],
			"additionalProperties": false
		},
		"NotifyDeleteEvent": {
			"$id": "urn:cps:org.onap.cps.ncmp.events._3gpp:notify-delete-event-schema:1.0.0",
			"description": "The payload of notifyMOIDeletion event",
			"type": "object",
			"javaType": "org.onap.cps.ncmp.events._3gpp.NotifyDeleteEvent",
			"properties": {
				"href": {
					"type": "string"
				},
				"notificationId": {
					"type": "integer"
				},
				"notificationType": {
					"$ref": "#/components/schemas/CmNotificationTypes",
					"const": "notifyMOIDeletion"
				},
				"eventTime": {
					"type": "string",
					"existingJavaType": "java.time.LocalDateTime",
					"format": "date-time"
				},
				"systemDN": {
					"type": "string"
				},
				"correlatedNotifications": {
					"type": "array",
					"items": {
						"$ref": "#/components/schemas/CorrelatedNotification"
					}
				},
				"additionalText": {
					"type": "string"
				},
				"sourceIndicator": {
					"$ref": "#/components/schemas/SourceIndicator"
				},
				"attributeList": {
					"$ref": "#/components/schemas/AttributeNameValuePairSet"
				}
			},
			"required": [
				"href",
				"notificationId",
				"notificationType",
				"eventTime",
				"systemDN"
			],
			"additionalProperties": false
		},
		"NotifyAttributeValueChangeEvent": {
			"$id": "urn:cps:org.onap.cps.ncmp.events._3gpp:notify-attribute-value-change-event-schema:1.0.0",
			"description": "The payload of notifyMOIAttributeValueChanges event",
			"type": "object",
			"javaType": "org.onap.cps.ncmp.events._3gpp.NotifyAttributeValueChangeEvent",
			"properties": {
				"href": {
					"type": "string"
				},
				"notificationId": {
					"type": "integer"
				},
				"notificationType": {
					"$ref": "#/components/schemas/CmNotificationTypes",
					"const": "notifyMOIAttributeValueChanges"
				},
				"eventTime": {
					"type": "string",
					"existingJavaType": "java.time.LocalDateTime",
					"format": "date-time"
				},
				"systemDN": {
					"type": "string"
				},
				"correlatedNotifications": {
					"type": "array",
					"items": {
						"$ref": "#/components/schemas/CorrelatedNotification"
					}
				},
				"additionalText": {
					"type": "string"
				},
				"sourceIndicator": {
					"$ref": "#/components/schemas/SourceIndicator"
				},
				"attributeListValueChanges": {
					"$ref": "#/components/schemas/AttributeValueChangeSet"
				}
			},
			"required": [
				"href",
				"notificationId",
				"notificationType",
				"eventTime",
				"systemDN",
				"attributeListValueChanges"
			],
			"additionalProperties": false
		},
		"NotifyChangesEvent": {
			"$id": "urn:cps:org.onap.cps.ncmp.events._3gpp:notify-changes-event-schema:1.0.0",
			"description": "The payload of notifyMOIChanges event",
			"type": "object",
			"javaType": "org.onap.cps.ncmp.events._3gpp.NotifyChangesEvent",
			"properties": {
				"href": {
					"type": "string"
				},
				"notificationId": {
					"type": "integer"
				},
				"notificationType": {
					"$ref": "#/components/schemas/CmNotificationTypes",
					"const": "notifyMOIChanges"
				},
				"eventTime": {
					"type": "string",
					"existingJavaType": "java.time.LocalDateTime",
					"format": "date-time"
				},
				"systemDN": {
					"type": "string"
				},
				"moiChanges": {
					"type": "array",
					"items": {
						"$ref": "#/components/schemas/MoiChange"
					}
				}
			},
			"required": [
				"href",
				"notificationId",
				"notificationType",
				"eventTime",
				"systemDN",
				"moiChanges"
			],
			"additionalProperties": false
		}
	},
	"components": {
		"schemas": {
			"AttributeNameValuePairSet": {
				"existingJavaType": "java.util.Map",
				"type": "object",
				"description": "The key of this map is the attribute name, and the value the attribute value.",
				"minProperties": 1
			},
			"AttributeValueChangeSet": {
				"type": "array",
				"items": {
					"$ref": "#/components/schemas/AttributeNameValuePairSet"
				},
				"description": "The first array item contains the attribute name value pairs with the new values, and the second array item the attribute name value pairs with the optional old values.",
				"minItems": 1,
				"maxItems": 2
			},
			"CmNotificationTypes": {
				"type": "string",
				"enum": [
					"notifyMOICreation",
					"notifyMOIDeletion",
					"notifyMOIAttributeValueChanges",
					"notifyEvent",
					"notifyMOIChanges"
				]
			},
			"SourceIndicator": {
				"type": "string",
				"enum": [
					"RESOURCE_OPERATION",
					"MANAGEMENT_OPERATION",
					"SON_OPERATION",
					"UNKNOWN"
				]
			},
			"CorrelatedNotification": {
				"type": "object",
				"properties": {
					"source": {
						"type": "string"
					},
					"notificationIds": {
						"type": "array",
						"items": {
							"type": "integer"
						}
					}
				},
				"additionalProperties": false,
				"required": [
					"source",
					"notificationIds"
				]
			},
			"Operation": {
				"type": "string",
				"enum": [
					"add",
					"remove",
					"replace"
				]
			},
			"Insert": {
				"type": "string",
				"enum": [
					"before",
					"after"
				]
			},
			"MoiChange": {
				"type": "object",
				"properties": {
					"notificationId": {
						"type": "integer"
					},
					"correlatedNotifications": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/CorrelatedNotification"
						}
					},
					"additionalText": {
						"type": "string"
					},
					"sourceIndicator": {
						"$ref": "#/components/schemas/SourceIndicator"
					},
					"op": {
						"$ref": "#/components/schemas/Operation"
					},
					"path": {
						"type": "string"
					},
					"insert": {
						"$ref": "#/components/schemas/Insert"
					},
					"value": {
						"type": "any"
					},
					"oldValue": {
						"type": "any"
					}
				},
				"additionalProperties": false,
				"required": [
					"notificationId",
					"op",
					"path"
				]
			}
		}
	},
	"additionalProperties": false
}


...

Error Handling


ScenarioExpected BehaviorNotesSignoff
1



Characteristics  → CPS-2329


ParameterExpectationNotesSignoff





Out of Scope


Solution Proposal