Versions Compared

Key

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

...

  • This page gives a description of CPS events including their fields
  • Events will be split into events and Kafka headersHeaders

Issues & Decisions

#DescriptionNotesDecision
1No Event properties defined for DMI AVC Event

Priyank Maheshwari will need to specify  and agreed event structure for DMI AVC Event with stakeholders  ie. provide Jira ticket


Event Body should be compatible with RFC8641

kieran mccarthy has confirmed.

Priyank Maheshwari created JIRA to create the event body schema. 

2Bulk Operation events details have not yet be defined (just headers)

Sourabh Sourabh to provide Jira tickets

Jira
serverONAP Jira
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-1658

3Should all the events have same
kafka headers
Headers

kieran mccarthy

Posissbly

Possibly Common (base) set of headers but mandatory aspect might differ. In practice we might need a separate headers (

shema

schema?) for each event

4Clarify the format of the version eventSchemaVersion

v1 or 1.0

EX

ex: 1.0.0 (without 'v')

kieran mccarthy to check ORAN preference

kieran mccarthy confirms through email on to use semantic versioning which ORAN follows https://semver.org.

5What to do with additional event headers (from DMI Plugins)

kieran mccarthy   if DMI produce

Additional

additional headers NCMP will discard those

ie

i.e. not included in forwarded events

6Event(Content) field in DMI Async Request Response Event has inconsistent name (compared with other schemas)
  1. Add V2 file
  2. Deprecate V1
  3. Support both versions for a while
  4. Delete the V1 version (after some time)

CPS Team

 Create

Create a V2 of the schema and rename eventContent as event data. Do it as part of the schema addition.

7NCMP Async Request Response Event (#5) contains both an Event and ForwardedEvent

ForwardedEvent is not wrapped inside Event but question now is if we need 2 events at all?!

Sourabh Sourabh  and Raviteja Karumuri  can check how it is actually working and then we decide (create a JIRA ticket)

Wiki for the Study on NCMPAsyncRequestResponse event schema

Conclusion: events not designed as proposed, very inconsistent. Never go a bug because these async events aren't used at all (confirmed by Csaba Koscis) Instead bulk request wil be used for topology use cases.

kieran mccarthy and team agreed to:

  1. Temporary disable the legacy async request feature (task created: 
    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-1694
    )
Aas
  1. As part of a lower priority work items (but during Montreal)
fix
  1. fiX related events with learnings from the new batch-usecase. (task created
    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-1693
    )
8Dmi Data AVC Event, use of eventSource field

Priyank Maheshwari wanted to store 'datastore' in this field but kieran mccarthy explained it to use for different purposes

kieran mccarthy Clients can use this field as per their requirements. 

9Can
Kafka
Headers be described with 'schema's owned and managed by NCMP 

POC to follow. 

Jira
serverONAP Jira
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-1657

Defining header schema.

Integration of header with kafka.

Naming and versioning convention for the header schemas. 'id' 

Does the headers schema have a version too?!


 Priyank Maheshwari confirmed headers can be described with a separate schema.

Both header schema's and event schemas

wil

will be published on https://docs.onap.org/projects/onap-cps/en/latest/cps-events.html

Header schema name and version will be maintained in the 'id' metadata field of header's schema . 

Defined Common Header schema. Extended it and used in a base class

10Depending #10 can schema inherit/extend a common schema for common headers

Commonly define them and then define what are mandatory(required) or optional as per the schema extending it.

If a field is not used in the extended schema then it should be able to handle it.

Extend

extend the POC (on #9) to cover this.

 Priyank Maheshwari did the POC and the conclusion of that was that :-

  • One schema can extend the other schema.
  • We cannot override the mandatory/optional parameter from the Parent schema. 
 PoC ongoing

Toine Siebelink agrees to go ahead with separate schema/

header

headers per event.  There will be some duplication but it will have its advantage when versioning. 

11Is anyone using Async Request feature?

See

Jira
serverONAP Jira
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-1660
we need to re-design event  #4 (Covers Point 6 as well) and #5 in a backward incompatible way. If no-one is using this feature right now (suspected) we can do this more easily/cheaper!

 Csaba Kocsis confirmed this is not used by Ericsson currently. No plans to use soon for single-cmhandle requests either (TBC). Need to decide priority (Csaba Kocsis to find out of

fixing

fiXing the legacy schema(s)
See decision on issue #7

12Do we need additionalProperties for DMI ASync Data Request respondes (events #4, #5)The original code populates a framework defined 'additionalProperties' field with a singel key-value pair: "response-data",{<json data>}. No other (private) properties are added either in DMI PLugin or NCMP code. The name is just coincidence and misleading. In fact this 'additionalProperties' field should NOT have been used at all!No, the new schema should NOT add  'additionalProperties' field at all use 'additionalProperties:no' in the schema
13AVC Subscription Event (DMI → NCMP) (events #3)
  • Want to understand what 'data' is datatype referring to under Subscription Event?
    • What value comes under 'schemaName' & 'SchemaVersion' of Datatype definition under AVC Subscription Event?
    • Reconfirmation needed on 'schemaName' & 'SchemaVersion'  should be in the payload?
In meeting
updated #3 is ON HOLD to analyse further. Agreed with Toine Siebelink  on that Priyank Maheshwari  will look into this from now as they are working on something related to this.

this issue is now no longer relevant as the decision was to use CNCF Cloud Events instead as per decision #14

14Align headers with CNCF Cloud EventsUsing standard headers as defined by Cloud Events and possibly common header extension See Table below, CNFC Cloud Event alignment
CPS will use Cloud Events  3PP for all current and legacy events to ensure common format

kieran mccarthyand Toine Siebelink  agreed on general idea but exact list of common headers need to be agreed 
Jira (first impl.) to be added! 

Jira
serverONAP Jira
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-1717

15

During the meeting we saw that the

Kafka header

Header fields were

prefixed

prefiXed with "ce_" so we need to check if we are ok with that.

Event Overview

assume "ce_" can be used as all user of the CNCF lib will get this behavior, will check if it can be replaced with no prefix at all. 
Sourabh Sourabh and Priyank Maheshwari concluded a cloud events specific serializer is used that add this prefix and cannot easily be changed (also that would be inconsistent use of this library) 

CPS Team recommend to accept this prefix and simply document that this prefer is required when filtering on kafka headers defined by CloudEvenst standard.

  team agreed with  kieran mccarthy to accept "ce_" prefix on serialzied CE defined headers. 
Note. Event(s) documentation in RTD should mentioned this  clearly too

16Do will still need/ can we still use schemas for header details with CNCF library ?! How to publish info about non-standard headers like correlationid ?

Meeting on   Team agreed refer to CNFC doc. and add list of extensions in RTD documentation. (key and value constraints)

17Inconsistent casing convention for header fields v. json data fieldsJust observing. All header ion CNCF are lowercase whereas json field are camelCase. Don't want to change but want to make sure agree...

Meeting on   Team agreed this is the way it is and Toine Siebelink will update to CPS Style section: Contribution and Development#CommonStyleConventions

18Confirm 'source'. is to be added to ALL events (declared mandatory for CNFC events)

kieran mccarthy confirm is is compulsory and a value will need to be set for all event definition. in NCMP a default value of 'ncmp' can be used if no other source is applicable. Toine Siebelink will update this page were needed to add this field and default value

Event Overview

#Short NameSourceDestinationImpl. StatusNotesFull Schema NameDiagram Ref.
1LCM EventNCMPClient AppsIn UseLife Cycle Management Events, when cmHandles are added or removedcps:org.onap.ncmp.cmhandle.lcm-event:v1CM-Handle State Changes and Notifications Overview#Notificationhandlingincode
2DMI Data AVC EventDMINCMPImplemented, Not in useAttribute Value Change in configuration management (CM) data.cps:org.onap.cps.ncmp.events:avc
#Short NameSourceDestinationImpl. StatusNotesFull Schema NameDiagram Ref.
1LCM EventNCMPClient AppsIn UseLife Cycle Management Events, when cmHandles are added or removedcps:org.onap.ncmp.cmhandle.lcm-event:v1CM-Handle State Changes and Notifications Overview#Notificationhandlingincode
2DMI Data AVC EventDMINCMPImplemented, Not in useAttribute Value Change in configuration management (CM) data.cps:org.onap.cps.ncmp.events:avc-event-schema:v15 in CPS Data Notifications Overview#ComponentDiagram
3AVC Subscription Create EventClient NCMP & DMIsImplemented, Not in useCreate Event Only

cps:org.onap.cps.ncmp.events:avc-subscription-event:v1

7 in CPS Data Notifications Overview#ComponentDiagram
4DMI Async Request Response EventDMINCMPIn UseDMI passes response onto Kafka topic specified by client.

cps:org.onap.cps.ncmp.events:dmi-async-request-response-event-schema:v1

3b → 4a in CPS-821 Spike: Support Async read-write operations on CPS-NCMP interface#ProposedDesign
5NCMP Async Request Response EventNCMPClient AppsIn UseForward No.4 to client specified topic

cps:org.onap.cps.ncmp.events:ncmp-async-request-response-event-schema:v1

4b → 5 in CPS-821 Spike: Support Async read-write operations on CPS-NCMP interface#ProposedDesign
6Bulk Response Event (Internal)DMINCMPIn ProgressInternal Kafka topiccps:org.onap.cps.ncmp.event:dmi-async-bulk-response-event-schema:v15 in CPS -1515: Spike: Support Multiple CM-Handles for NCMP Get Operation (batch operations)7

Bulk Response Event (Client)

NCMP Client AppsIn ProgressData Notifications Overview#ComponentDiagram
3AVC Subscription Create EventClient NCMP & DMIsImplemented, Not in useCreate Event OnlyForwarding the DMI responses to the client topic

cps:org.onap.cps.ncmp.

event

events:

ncmp

avc-

async

subscription-

bulk-response-

event

-schema

:v1

6 in CPS-1515: Spike: Support Multiple CM-Handles for NCMP Get Operation (batch operations)

#1 LCM Event (NCMP → Client Apps)

Description

LCM (Life Cycle Management) Event. Sent by NCMP when the state of a CM Handle changes. For diagram see CM-Handle State Changes and Notifications Overview#Notificationhandlingincode

...

titleLCM Event Details

Current LCM Event Object

...

M
E.g. cps:org.onap.ncmp.cmhandle.lcm-event:1.0.0

...

The version of the schema that this event adheres to

...

M

e.g v1.0

...

Type:Event (cps:org.onap.ncmp.cmhandle.lcm-event:v1)

...

Values that represents the state of a cmHandle

...

Type:Values

...

State of cmHandle

...

["ADVISED", "READY", "LOCKED", "DELETING", "DELETED"]

...

#2 DMI Data AVC Event  (ONAP DMI → NCMP)

Description

A normalized AVC Event  that ONAP DMI Plugin will send to NCMP. NCMP can process the event and update cached data if needed. See 5 in CPS Data Notifications Overview#ComponentDiagram
Other DMI Plugin might snet similar events, using same headers but different payload and value for 'eventSchema' Depending on the AVC subscription details those events might or might not be forwarded to the Client Apps.

...

titleDMI Data AVC Event

AVC Event Object

...

7 in CPS Data Notifications Overview#ComponentDiagram
4DMI Async Request Response EventDMINCMPIn UseDMI passes response onto Kafka topic specified by client.

cps:org.onap.cps.ncmp.events:dmi-async-request-response-event-schema:v1

3b → 4a in CPS-821 Spike: Support Async read-write operations on CPS-NCMP interface#ProposedDesign
5NCMP Async Request Response EventNCMPClient AppsIn UseForward No.4 to client specified topic

cps:org.onap.cps.ncmp.events:ncmp-async-request-response-event-schema:v1

4b → 5 in CPS-821 Spike: Support Async read-write operations on CPS-NCMP interface#ProposedDesign
6Bulk Response Event (Internal)DMINCMPIn ProgressInternal Kafka topiccps:org.onap.cps.ncmp.event:dmi-async-bulk-response-event-schema:v15 in CPS-1515: Spike: Support Multiple CM-Handles for NCMP Get Operation (Data operations)#BulkRequestMessageFlow
7

Bulk Response Event (Client)

NCMP Client AppsIn ProgressForwarding the DMI responses to the client topiccps:org.onap.cps.ncmp.event:ncmp-async-bulk-response-event-schema:v16 in CPS-1515: Spike: Support Multiple CM-Handles for NCMP Get Operation (Data operations)#BulkRequestMessageFlow

#1 LCM Event (NCMP → Client Apps)

Description

LCM (Life Cycle Management) Event. Sent by NCMP when the state of a CM Handle changes. For diagram see CM-Handle State Changes and Notifications Overview#Notificationhandlingincode

Expand
titleLCM Event Details

Current LCM Event Object

FieldTypeDescriptionHeaderPayloadNotesCloudEvents Mapping
eventIDstringThe unique id identifying the eventX
Mandatorystandard (id)
eventCorrelationIdstringThe id identifying the event.  In LCMEvent this is always a cmhandleIdX
Optional
(extension fields will be optional now)
extension (correlationid)
eventTimestringThe timestamp when original event occurredX
Mandatorystandard (time)
eventSourcestringThe source of the eventX
Mandatorystandard (source)
eventTypestringThe type of the eventX
Mandatorystandard (type)
eventSchemastringThe schema that this event adheres to. X

Mandatory e.g. cps:org.onap.ncmp.cmhandle.lcm-event:1.0.0

standard (dataschema)
eventSchemaVersionstring

The version of the schema that this event adheres to

X

Mandatory e.g v1.0

N/A included in 'dataschema'
eventEventThe payload of an event
XMandatorystandard (data)
N/AN/AThe version of CNCF SpecificationX
Specified by CNCF (value hardcoded)

standard (specversion)

Type:Event (cps:org.onap.ncmp.cmhandle.lcm-event:v1)

FieldTypeDescriptionHeaderPayloadNotes
cmHandleIdstringcmHandle id
X
oldValuesValues

Values that represents the state of a cmHandle


XDefined by values object below
newValuesValuesValues that represents the state of a cmHandle
XDefined by values object below

Type:Values

FieldTypeDescriptionHeaderPayloadNotes
dataSyncEnabledstringcmHandle id
X
cmHandleStatestring

State of cmHandle


XEnum:  ["ADVISED", "READY", "LOCKED", "DELETING", "DELETED"]
cmHandlePropertiesobjectcmHandle properties
XList of Java <String, String> Maps


#2 DMI Data AVC Event  (ONAP DMI → NCMP)

Description

A normalized AVC Event  that ONAP DMI Plugin will send to NCMP. NCMP can process the event and update cached data if needed. See 5 in CPS Data Notifications Overview#ComponentDiagram
Other DMI Plugin might snet similar events, using same headers but different payload and value for 'eventSchema' Depending on the AVC subscription details those events might or might not be forwarded to the Client Apps.

Expand
titleDMI Data AVC Event

AVC Event Object

FieldTypeDescriptionHeaderPayloadNotesCloudEvents Mapping
eventIDstringThe unique id identifying the eventX
Mandatorystandard (id)
eventCorrelationIdstringThe id identifying the eventX
Optionalextension(correlationid)
eventTimestringThe timestamp when original event occurredX
Optionalstandard (time)
eventSourcestringThe source of the eventX
Optionalstandard (source)
eventTypestringThe type of the eventX
Mandatory (e.g. cps:org.onap.cps.ncmp.events:avc-event)standard (type)
eventSchemastringThe schema that this event adheres toX
Mandatory (e.g. cps:org.onap.cps.ncmp.events:avc-event-schema)standard (dataschema)
eventSchemaVersionstring

The version of the schema that this event adheres to

X
MandatoryN/A included in 'dataschema'
eventEventThe payload of an event

Mandatorystandard (data)

Type: Event (cps:org.onap.cps.ncmp.events:avc-event-schema:v1)

FieldTypeDescriptionHeaderPayloadNotes

No Properties defined (entire event treated as single object) See open issue #1
Priyank Maheshwari  This is how the event will look like.

CPS-1065 Spike: CM data notifications from NCMP to applications including subscriptions#EventPayloadExample


#3 AVC Subscription Event (DME → NCMP)

Description

AVC Subscription Event  (external Clients Apps  → NCMP) 

Priyank Maheshwari  We need to revisit this schema and include the cloud events fields. (At the moment this doesn't have proper fields) 

Excerpt


Expand
titleAVC Subscription Event

Subscription Event Object

FieldTypeDescriptionHeaderPayloadNotesCloudEvents Mapping
versionstringThe event type versionX

included in dataschema
eventTypestring

The event type

X


standard (type)
source

X
NEW  see decision #18, value <clientId> (same as in payload) TBCstandard (source)
eventEventThe payload for an eventX
Defined by event object belowstandard (data

Event Object (cps:org.onap.cps.ncmp.events:avc-subscription-event:v1)

FieldTypeDescriptionHeaderPayloadNotes
subscriptionSubscriptionThe subscription details
XDefined by subscription object below
dataTypeDataType

The datatype content


XDefined by dataType object below
predicatesPredicates

Additional values to be added into the subscription


XDefined by predicates object below

Type: Subscription

FieldTypeDescriptionHeaderPayloadNotes
clientIDstring

The client ID


X
namestring

The name of the subscription


X
isTaggedboolean

optional parameter, default is false


Xdefault: false

Type: DataType

FieldTypeDescriptionHeaderPayloadNotes
dataspacestring

The dataspace name


X
dataCategorystring

The category type of the data


X
dataProviderstring

The provider name of the data


X
schemaNamestring

The name of the schema


X
schemaVersionstring

The version of the schema


X

Type: Predicates

FieldTypeDescriptionHeaderPayloadNotes
targetsarray

CM Handles to be targeted by the subscription


X
datastorestring

datastore which is to be used by the subscription


X
Xpath-filterstring

filter to be applied to the CM Handles through this event


X




#4 DMI Async Request Response Event (DMI → NCMP)

Description

This event is for the asynchronous responses  from DMI to NCMP following (synchronous) requests (from NCMP) specifying a (response) topic. See 3b → 4a in CPS-821 Spike: Support Async read-write operations on CPS-NCMP interface#ProposedDesign

Expand
titleDMI Async Request Response Event

DmiAsyncRequestResponse Event Object

FieldTypeDescriptionHeaderPayload NotesCloudEvents Mapping
eventIDstringThe unique id identifying the event generated by DMIX

standard (id
eventCorrelationIdstring

The request id passed by NCMP

X

extensions (correlationid)
eventTimestringThe timestamp when original event occurredX

standard (time
eventTargetstringThe target of the eventX

extensions (target)
eventTypestringThe type of the eventX

standard (type
eventSchemastring

The event schema for async request response events

X

standard (dataschema
eventSchemaVersionstring

The event schema version for async request response events

X

N/A included in 'dataschema'
eventSourcestringThe source of the eventX

standard (source
eventContentEventContentThe payload of an event

The name of this fields is inconsistent with all other event schemas, see issue #6

standard (data) 

Type: EventContent (cps:org.onap.cps.ncmp.events:dmi-async-request-response-event-schema:v1)

FieldTypeDescriptionHeaderPayloadNotes
response-data-schemastring

The schema of response data


X
response-statusstring

The status of the response


X
response-codestring

The code of the response


X
response-dataobjectThe data payload
Xcontains payload of type object


#5 NCMP Async Request Response Event (NCMP → Client App

...

The version of the schema that this event adheres to

...

Type: Event (cps:org.onap.cps.ncmp.events:avc-event-schema:v1)

...

No Properties defined (entire event treated as single object) See open issue #1
Priyank Maheshwari  This is how the event will look like.

CPS-1065 Spike: CM data notifications from NCMP to applications including subscriptions#EventPayloadExample

#3 AVC Subscription Event (DME → NCMP)

Description

AVC Subscription Event  (External Clients Apps  → NCMP) : ON HOLD - kieran mccarthy to analyze further

Priyank Maheshwari  We need to revisit this schema and include the cloud events fields. ( At the moment this doesn't have proper fields ) 

...

titleAVC Subscription Event

Subscription Event Object

...

The event type

...

ekiemcc : This is now covered by the header?  Is this needed any longer in the body?

Enum: 

["CREATE"]

...

Event Object (cps:org.onap.cps.ncmp.events:avc-subscription-event:v1)

...

The datatype content

...

Additional values to be added into the subscription

...

Type: Subscription

...

The client ID

...

The name of the subscription

...

optional parameter, default is false

...

Type: DataType

...

The dataspace name

...

The category type of the data

...

The provider name of the data

...

The name of the schema

...

The version of the schema

...

Type: Predicates

...

CM Handles to be targeted by the subscription

...

datastore which is to be used by the subscription

...

filter to be applied to the CM Handles through this event

...

)

Description

This event is for the asynchronous responses  responses from DMI NCMP to NCMP Client Apps following (synchronous) requests (from NCMPclient) specifying a (response) topic. See 3b 4b 4a 5 in CPS-821 Spike: Support Async read-write operations on CPS-NCMP interface#ProposedDesign


x
Expand
titleDMI NCMP Async Request Response Event
DmiAsyncRequestResponse

NcmpAsyncRequestResponse Event Object

FieldTypeDescription
Kafka
Header
Event
Payload
Field
NotesCloudEvents Mapping
eventIDstringThe unique id identifying the event generated by DMI
xstandard ( id ) eventCorrelationIdstring

The request id passed by NCMP

xextensions ( correlationid )eventTimestringThe timestamp when original event occurredxstandard ( time) eventTargetstringThe target of the eventxextensions ( destination )eventTypestringThe type of the event
X

standard (
type
id
eventSchema
eventCorrelationIdstring

The

event schema for async request response eventsxstandard ( dataschema ) eventSchemaVersion

request id passed by NCMP

X

extensions (correlationid)
eventTimestringThe
event schema version for async request response eventsxN/A included in 'dataschema'eventSource
timestamp when original event occurredX

standard (time
eventTargetstringThe
source
target of the event
x
X
standard


extensions (
source
target)
 
eventContent
eventType
EventContent
stringThe
payload of an eventThe name of this fields is inconsistent with all other event schemas, see issue #6
type of the eventX

standard (
data
type

Type: EventContent (cps:org.onap.cps.ncmp.events:dmi-async-request-response-event-schema:v1)

sourcestringThe source of the eventX
NEW  see decision #18, value 'ncmp'standard (source
eventSchema
FieldTypeDescriptionKafka HeaderEvent Payload FieldNotesrepsonse-data-schema
string

The event schema

of response dataxresponse-status

for async request response events

X

standard (dataschema
eventSchemaVersionstring

The

status of the responsexresponse-codestring

The code of the response

xresponse-dataobjectThe data payloadxcontains payload of type object

#5 NCMP Async Request Response Event (NCMP → Client App)

Description

This event is for the asynchronous responses from NCMP to Client Apps following (synchronous) requests (from client) specifying a (response) topic. See 4b → 5 in CPS-821 Spike: Support Async read-write operations on CPS-NCMP interface#ProposedDesign

eventSchemaVersion

event schema version for async request response events

X

N/A included in 'dataschema'
eventEventThe payload of an event
XDefined by event object belowstandard (data
forwardedEventForwardedEventThe payload of a forwarded event
X

Relation to Event field unclear, do we need 2 events at all see issue #7

standard (data
See new proposal below

Type: Event (cps:org.onap.cps.ncmp.events:ncmp-async-request-response-event-schema:v1)

Expand
titleNCMP Async Request Response Event

NcmpAsyncRequestResponse Event Object

FieldTypeDescription
Kafka
Header
Event
Payload
Field
Notes
eventIDstringThe unique id identifying the event generated by DMI
x

XOnly in payload in v1 of the payload schema.  To be removed in v2 version (will be in the header only)
eventCorrelationIdstring

The request id passed by NCMP

x

Xas above
eventTimestringThe timestamp when original event occurred
x

Xas above
eventTargetstringThe target of the event
x

Xas above
eventTypestringThe type of the event
x

Xas above
eventSchemastring

The event schema for async request response events

x

Xas above
eventSourcestring

The source of the event

schema version for async request response eventsxeventEventThe payload of an eventDefined by event object belowforwardedEventForwardedEventThe payload of a forwarded event

Relation to Event field unclear, do we need 2 events at all see issue #7

Type:


Xas above
response-data-schemastring

The received schema of response data


X
response-statusstring

The received status of the response


X


response-codestring

The received code of the response


X
response-dataobject

The data payload


Xcontains payload of type object

Type: forwardedEvent (cps:org.onap.cps.ncmp.events:ncmp-async-request-response-event-schema:v1)

xxxx
FieldTypeDescriptionKafka HeaderEvent Payload FieldNotes
eventIDstringThe unique id identifying the event generated by DMIx
?Can NCMP put these in the header and remove them from the 'forwardedEvent'Only in payload in v1 of the payload schema.  To be removed in v2 version (will be in the header only)
eventCorrelationIdstring

The request id passed by NCMP


x?as above
eventTimestringThe timestamp when original event occurred
x?as above
eventTargetstringThe target of the event
x?as above
eventTypestringThe type of the event
x?as above
eventSchemastring

The event schema for async request response events


?as above
eventSchemaVersionstring

The event schema version for async request response events


x?as above
eventSourcestring

The source of the event


?as above
response-data-schemastring

The received schema of response data


xX
response-statusstring

The received status of the response


X


response-codestring

The received code of the response


X
response-dataobject

The data payload


Xcontains payload of type object
Type: forwardedEvent (cps:org.onap.cps.ncmp.events:ncmp-async-request-response-event-schema:v1)

Proposed New Schema:

see

Jira
serverONAP Jira
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-1660

FieldTypeDescription
Kafka
Header
Event Payload FieldNotes
PayloadNotesCloudEvents Mapping
eventIDstringThe unique id identifying the event generated by DMIX

standard (id)
eventCorrelationIdstring

The request id passed by NCMP

X

extensions(correlationid)
eventTimestringThe timestamp when original event occurredX

standard (time)
eventSource
eventID
stringThe
unique id identifying
source of the event
generated by DMI?Can NCMP put these in the header and remove them from the 'forwardedEvent'eventCorrelationIdstring

The request id passed by NCMP

?as aboveeventTimestringThe timestamp when original event occurred?as aboveeventTargetstringThe target of the event?as aboveeventTypestringThe type of the event?as aboveeventSchemastring

The event schema for async request response events

?as aboveeventSchemaVersionstring

The event schema version for async request response events

?as aboveeventSourcestring

The source of the event

?as above
X
What value should contain in this? Needs clarification, see issue #8standard (source)
eventTypestringThe type of the eventX

standard (type)
eventSchemastring

The event schema for async request response events

X

standard (dataschema)
eventSchemaVersionstring

The event schema version for async request response events

X

N/A included in 'dataschema'
eventEventThe payload of an event
XDefined by event object belowstandard (data)

Type: Event (cps:org.onap.cps.ncmp.events:ncmp-async-request-response-event-schema:v1)

FieldTypeDescriptionHeaderPayloadNotes
eventCorrelationIdstring

The request id passed by NCMP

X
as above @Toine asked to add this property.
responseStatusstring

The received status of the response


X


responseCode
response-data-schemastring

The received schema of response data

xresponse-statusstring

The received status of the response

xresponse-code
string

The received code of the response

x

X
response-data

responseDataobject

The data payload

x

Xcontains payload of type object


#6 Data Operation (response) Event (DMI → NCMP)

Description

Batch (data) request will always result in asynchronous events (responses) sent to the client. This event is the response from DMI to NCMP. See 5 in CPS-1515: Spike: Support Multiple CM-Handles for NCMP Get Operation (bulk / batch operations)#BulkRequestMessageFlow

CPS-1660
Expand
titleDMI Async Batch Response Event

DmiDataOperationEvent Object

Excerpt
Proposed New Schema:
Jira
serverONAP Jira
serverId425b2b0a-557c-3c0c-b515-579789cceedb
key


FieldTypeDescription
Kafka
Header
Event
Payload
Field
NotesCloudEvents Mapping
eventIDstringThe unique id identifying the event generated by DMIX

Mandatory. Generated by DMI-Plugin

standard (id) 
eventCorrelationIdstring

The request id passed by NCMP

extensions(correlationid)eventTimestringThe timestamp when original event occurredstandard (time)eventSource
X
Mandatory. This is requestId that NCMP sent to client as an ACK.
example : “request-1234" (UUID)
extension (correlationid)
eventTargetstringThe
source
destination topic of the
eventWhat value should contain in this? Needs clarification, see issue #8standard (source)
clientX
Mandatory. TBC example: my-topicextension (destination)
source
eventType
stringThe
type
source of the event
standard (type)eventSchemastringThe event schema for async request response events


Mandatory. example : dmi-plugin:enm-1 (dmi service name)standard (
dataschema
source) 
eventSchemaVersion
eventTimestringThe
event schema version for async request response eventsN/A included in 'dataschema'eventEventThe payload of an eventDefined by event object belowstandard (data)

Type: Event (cps:org.onap.cps.ncmp.events:ncmp-async-request-response-event-schema:v1)

FieldTypeDescriptionKafka HeaderEvent Payload FieldNoteseventCorrelationIdstring

The request id passed by NCMP

as above @Toine asked to add this property.responseStatusstring

The received status of the response

responseCodestring

The received code of the response

responseDataobject

The data payload

contains payload of type object

#6 Batch Response Event (DMI → NCMP)

Description

Batch (data) request will always result in asynchronous events (responses) sent to the client. This event is the response from DMI to NCMP. See 5 in CPS-1515: Spike: Support Multiple CM-Handles for NCMP Get Operation (bulk / batch operations)#BulkRequestMessageFlow

...

titleDMI Async Batch Response Event

BatchResponseEvent Object

...

The request id passed by NCMP

...

The event schema for async request response events

...

The event schema version for async request response events

...

Type: Event (cps:org.onap.cps.ncmp.event.async:dmi-async-batch-response-event-schema:v1)

timestamp when original event occurredX

Optional. The timestamp should follow that on https://www.rfc-editor.org/rfc/rfc3339#section-5. This follows ISO 8601 and is what is used/referenced in 3GPP standards
example: 1985-04-12T23:20:50.52Z this represents 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC.

standard (time
eventTypestringThe type of the eventX
Mandatory. NCMP owns eventType that would be used by dmi-plugins
The Convention of eventType and Schema names is under discussion, see open issue #17 on  CPS-1515 Spike
standard (type
eventSchemastring

The event schema for async request response events

X
Mandatory.
The Convention of eventType and Schema names is under discussion, see open issue #17 on  CPS-1515 Spike
standard (dataschema
eventSchemaVersionstring

The event schema version for async request response events

X

N/A included in 'dataschema'
eventEventThe payload of an event
Xjava object not yet defined by schema, see issue #2standard (data
specversionStringVersion of CNCF specX
hardcoded value of 1.0standard (specversion)



Type: Event (cps:org.onap.cps.ncmp.event.async:dmi-data-operation-event-schema:v1)

FieldTypeDescriptionHeaderPayloadNotes
No Properties defined (Entire event treated as single object)


#7 Data Operation (response) Event (NCMP → Client App)

Description

Batch (data) request will always result in asynchronous events (responses) sent to the client. This event is the response from DMI to NCMP. See 6 in CPS-1515: Spike: Support Multiple CM-Handles for NCMP Get Operation (bulk / batch operations)#BulkRequestMessageFlow

Expand
titleNCMP Async Batch Response Event - Client Topic

NcmpDataOperationEvent Object

FieldTypeDescriptionHeaderPayloadNotesCloudEvents Mapping
eventIDstringThe unique id identifying the event generated by DMIX

standard (id
eventCorrelationIdstring

The request id passed by NCMP

X

extensions (correlationid)
eventTimestringThe timestamp when original event occurredX

standard (time
eventTypestringThe type of the eventX

standard (type
sourcestringThe source of the eventX
NEW  see decision #18, value 'ncmp'standard (source
eventSchemastring

The event schema for async request response events

X

standard (dataschema
eventSchemaVersionstring

The event schema version for async request response events

X

N/A included in 'dataschema'
eventEventThe payload of an event
XJava object not yet defined by schema, see issue #2standard (data


Type: Event (cps:org.onap.cps.ncmp.event.async:ncmp-data-operation-event-schema:v1)

FieldTypeDescriptionHeaderPayloadNotes
No Properties defined (Entire event treated as single object)


CNCF Cloud Event alignment

Introduction

Image Added

CNCF CloudEvents is a specification for describing event data in common formats to provide interoperability across services, platforms and systems.

  • These cloud events will be applied to all the internal and external events we have in CPS , NCMP and DMI Plugin.
  • Cloud events will be taking care of the fields which are part of Headers or part of the actual payload (fields other than "data" are sent as Headers)
  • These CNCF cloud events will be applied to all the events listed in above sections (LCM , DMI Data AVC etc.)

Library References

  1. https://github.com/cloudevents/spec

  2. https://github.com/cloudevents/sdk-java
  3. https://mvnrepository.com/artifact/io.cloudevents
  4. examples : https://github.com/cloudevents/sdk-java/tree/main/Examples/kafka/src/main/java/io/cloudevents/Examples/kafka

Common Header Mapping

The table below shows how previously proposed headers should be mapped to pre-defined CNFC headers.

Before

After1

CloudeEvent builder methodExample ValueNotes 

eventId

(ce_)id

.withId()
Mandatory

eventSource

(ce_)source

.withSource()
Mandatory

N/A

(ce_)specversion  (default 1.0)

.v1()1.0Mandatory  - This is the version of the cloud events

eventType

(ce_)type

.withType()
Mandatory

eventTime

(ce_)time

.withTime()
Optional (could be Mandatory for 

eventSchema

(ce_)dataschema

.withDataSchema()

Optional  includes the version of the schema


content-type2
withDataContentType()
application/jsonOptional
eventCorrelationId(ce_)correlationid.withExtension()

Optional This will be part of the extensions field in the cloud events and all the restrictions of the attribute field naming applies to it.

i.e these fields will be in the small case.

This is marked as optional as it only applies to some events.

event(ce_)data.withData(json TBC)
Mandatory actual event/payload now would be under "data" field.
  • Note 1 all cloud-event headers will be prefixed during serialization with 'ce_'  (this means when filtering on serialized Kafka-headers this prefix need to be applied)
  • Note 2 content-type is a a 'default' header name no 'wrapped' by CloudEvents and hence the inconsistency in names and that is does NOT have the 'ce_' prefix.

Common NCMP response staus code & message :

  • Status-code 0-99 is reserved for any success response
  • Status-code from 100 to 199 is reserved for any failed response. 

Status Code

Status Message

0
Successfully applied changes
100
cm handle id(s) is(are) not found
101
cm handle id(s) is(are) in non ready state
102
dmi plugin service is not responding
103
dmi plugin service is not able to read resource data

...

#7 Batch Response Event (NCMP → Client App)

Description

Batch (data) request will always result in asynchronous events (responses) sent to the client. This event is the response from DMI to NCMP. See 6 in CPS-1515: Spike: Support Multiple CM-Handles for NCMP Get Operation (bulk / batch operations)#BulkRequestMessageFlow

...

titleNCMP Async Batch Response Event - Client Topic

BatchResponseEvent Object

...

The request id passed by NCMP

...

The event schema for async request response events

...

The event schema version for async request response events

...

Type: Event (cps:org.onap.cps.ncmp.event.async:ncmp-async-batch-response-event-schema:v1)

...

CNCF Cloud Event alignment

Cloudy Event Library

Introduction

CloudEvents is a specification for describing event data in common formats to provide interoperability across services, platforms and systems.

  • These cloud events will be applied to all the internal and external events we have in CPS , NCMP and DMI Plugin.
  • Cloud events will be taking care of the fields which are part of kafka headers or part of the actual payload ( fields other than "data" are sent as kafka headers )
  • These CNCF cloud events will be applied to all the events listed in above sections ( LCM , DMI Data AVC etc. )

Library

https://github.com/cloudevents/spec

https://github.com/cloudevents/sdk-java

https://mvnrepository.com/artifact/io.cloudevents

Examples : https://github.com/cloudevents/sdk-java/tree/main/examples/kafka/src/main/java/io/cloudevents/examples/kafka

Mandatory actual event/payload now would be under "data" field.

Before

After

CloudeEvent builder methodExample ValueNotes

eventId

id

.withId()Mandatory

eventSource

source

.withSource()Mandatory

N/A

specversion  (default 1.0)

.v1()1.0Mandatory  - This is the version of the cloud events

eventType

type

.withType()Mandatory

eventTime

time

.withTime()Optional

eventSchema

dataschema

.withDataSchema()

Optional  includes the version of the schema

datacontenttype
withDataContentType()
application/jsonOptionaleventCorrelationIdcorrelationid.withExtension()

Optional This will be part of the extensions field in the cloud events and all the restrictions of the attribute field naming applies to it.

i.e these fields will be in the small case.

This is marked as optional as it applies to the event which has this field.

eventdata.withData(json TBC)