References

CPS-2299 - Getting issue details... STATUS  

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.


AssumptionNotesSign-off
1Put 4 3GPP standard schemas into the CPS repository.

Issues & Decisions


IssueNotes Decision




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)


3GPP 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
}




InterfaceRequirementAdditional InformationSignoff





Error Handling


ScenarioExpected BehaviorNotesSignoff
1



Characteristics  → CPS-2329


ParameterExpectationNotesSignoff





Out of Scope


Solution Proposal

  • No labels