Versions Compared

Key

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

Table of Contents

Overview

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1628

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

Issues & Decisions

...

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. 

...

Table of Contents

Overview

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1628

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

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 Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1658

3Should all the events have same Headers

kieran mccarthy Possibly Common (base) set of headers but mandatory aspect might differ. In practice we might need a separate headers (schema?) for each event

4Clarify the format of the version eventSchemaVersion

v1 or 1.0

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 headers NCMP will discard those 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 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 (EST)  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 Legacy
    serverSystem Jira
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCPS-1694
    )
  2. As part of a lower priority work items (but during Montreal) fiX related events with learnings from the new batch-usecase. (task created
    Jira Legacy
    serverSystem Jira
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    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 Headers be described with 'schema's owned and managed by NCMP 

POC to follow. 

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
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 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 . 

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 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. 

Toine Siebelink agrees to go ahead with separate schema/headers per event.  There will be some duplication but it will have its advantage when versioning. 

11Is anyone using Async Request feature?

See

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176

keyCPS-16583Should all the events have same Headers

kieran mccarthy Possibly Common (base) set of headers but mandatory aspect might differ. In practice we might need a separate headers (schema?) for each event

4Clarify the format of the version eventSchemaVersion

v1 or 1.0

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 headers NCMP will discard those 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 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 (EST)  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:

Temporary disable the legacy async request feature (task created:

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 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?

 kieran mccarthy 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 Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS

-1694)
  • As part of a lower priority work items (but during Montreal) fiX related events with learnings from the new batch-usecase. (task created
    Jira Legacy
    serverSystem Jira
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    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 Headers be described with 'schema's owned and managed by NCMP 

    POC to follow. 

    Jira Legacy
    serverSystem Jira
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    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 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 . 

    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 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. 

    Toine Siebelink agrees to go ahead with separate schema/headers per event.  There will be some duplication but it will have its advantage when versioning. 

    11Is anyone using Async Request feature?

    See

    Jira Legacy
    serverSystem Jira
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    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 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 schema13AVC 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 kieran mccarthy 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.

    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 Legacy
    serverSystem Jira
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCPS-1717

    15

    During the meeting we saw that the Header fields were prefiXed with "ce_" (or "ce0") so need to check if we are ok with that.

    assume "ce_" can be used as all user of the CNCF lib will get this behavio., will check id it can be replaced with no prefiX at all. 

    Need to check with kieran mccarthy for way forward.

    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)

    Event Overview

    ...

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

    ...

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

    ...

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

    ...

    Bulk Response Event (Client)

    ...

    #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

    ...

    -1717

    15

    During the meeting we saw that the Header fields were prefiXed with "ce_" so we need to check if we are ok with that.

    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-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 (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.

    Specified by CNCF (value hardcoded)
    Expand
    titleDMI Data AVC Event

    AVC Event Object

    FieldTypeDescriptionHeaderPayloadNotesCloudEvents Mapping
    eventIDstringThe unique id identifying the eventX
    Mandatorystandard (id)
    eventCorrelationIdstringThe id identifying the event
    .  In LCMEvent this is always a cmhandleId
    X
    Optional

    (eXtension fields will be optional now)eXtension
    extension(correlationid)
    eventTimestringThe timestamp when original event occurredX
    Mandatory

    Optionalstandard (time)
    eventSourcestringThe source of the eventX
    Mandatory

    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 to
    X
    Mandatory (e.g. cps:org.onap.cps.ncmp.
    cmhandle.lcm-event:1.0.0
    events:avc-event-schema)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


    Mandatorystandard (
    specversion
    data)

    Type: Event (cps:org.onap.cps.ncmp.

    cmhandle.lcm

    events:avc-event-schema:v1)

    FieldTypeDescriptionHeaderPayloadNotescmHandleIdstringcmHandle idXoldValuesValues

    Values that represents the state of a cmHandle

    XDefined by values object belownewValuesValuesValues that represents the state of a cmHandleXDefined by values object belowType:Values

    FieldTypeDescriptionHeaderPayloadNotes
    dataSyncEnabledstringcmHandle idXcmHandleStatestring

    State of cmHandle

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

    ...

    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

    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.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) 

    DMI Data eventTime
    Excerpt


    Expand
    title
    AVC Subscription Event
    AVC

    Subscription Event Object

    FieldTypeDescriptionHeaderPayloadNotesCloudEvents Mapping
    eventID
    versionstringThe
    unique id identifying the
    event type versionX
    Mandatorystandard (id)eventCorrelationIdstringThe id identifying the eventXOptionaleXtension(correlationid)


    included in dataschema
    eventTypestring

    The

    timestamp when original

    event

    occurred

    type

    X
    Optional


    standard (
    timeThe
    type)
    eventSourcestring
    source
    of the event


    X
    Optional

    NEW  see decision #18, value <clientId> (same as in payload) TBCstandard (source)
    eventType
    event
    string
    EventThe
    type of the
    payload for an eventX
    Mandatory (e.g. cps:org.onap.cps.ncmp.events:avc-event)

    Defined by event object belowstandard (
    type)eventSchemastringThe schema that this event adheres toXMandatory (e.g.
    data

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

    -schema)standard (dataschema)eventSchemaVersionstring

    The version of the schema that this event adheres to

    XMandatoryN/A included in 'dataschema'eventEventThe payload of an eventMandatorystandard (data)Type: Event (cps:org.onap.cps.ncmp.events:avc-event-schema:v1)

    :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

    FieldTypeDescriptionHeaderPayload
    Notes

    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) 

    version
    Expand
    titleAVC Subscription Event
    Subscription Event Object
    Notes
    clientIDstring

    The client ID


    X
    namestring

    The name of the subscription


    X
    isTaggedboolean

    optional parameter, default is false


    Xdefault: false

    Type: DataType

    FieldTypeDescriptionHeaderPayloadNotes
    CloudEvents Mapping
    dataspacestring

    The dataspace name


    X
    dataCategorystring

    The

    event

    category type

    version

    of the data


    X
    included in dataschema

    dataProvider
    eventType
    string

    The

    event type

    provider name of the data


    X
    standard (type)sourceNEW TBC, see issue #18eventEventThe payload for an eventXDefined by event object belowstandard (data) Event Object (cps:org.onap.cps.ncmp.events:avc-subscription-event:v1)

    schemaNamestring

    The name of the schema


    X
    schemaVersionstring

    The version of the schema


    X

    Type: Predicates

    FieldTypeDescriptionHeaderPayloadNotes
    subscription
    targets
    SubscriptionThe subscription detailsType: Subscription
    array

    CM Handles to be targeted by the subscription


    X
    Defined by subscription object belowdataTypeDataType

    The datatype content

    XDefined by dataType object belowpredicatesPredicates

    Additional values to be added into the subscription

    XDefined by predicates object below

    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

    FieldTypeDescriptionHeader
    Payload
    Payload Notes
    clientID
    CloudEvents Mapping
    string

    The client ID

    Xname
    eventIDstringThe
    name of the subscriptionFieldTypeDescriptionHeaderPayloadNotesdataspace
    unique id identifying the event generated by DMIX
    isTaggedboolean

    optional parameter, default is false

    Xdefault: false

    Type: DataType

    Expand
    titleDMI Async Request Response Event
    DmiAsyncRequestResponse Event Object


    standard (id
    eventCorrelationIdstring

    The

    dataspace name

    request id passed by NCMP

    X
    dataCategory


    extensions (correlationid)
    eventTimestringThe
    category type of the data
    timestamp when original event occurredX
    dataProvider


    standard (time
    eventTargetstringThe
    provider name
    target of the
    data
    eventX
    schemaName


    extensions (target)
    eventTypestringThe
    name
    type of the
    schema
    eventX
    schemaVersion


    standard (type
    eventSchemastring

    The

    version of the schemaX

    Type: Predicates

    FieldTypeDescriptionHeaderPayloadNotestargetsarray

    CM Handles to be targeted by the subscription

    Xdatastorestring

    datastore which is to be used by the subscription

    XXpath-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

    eventID

    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)

    FieldTypeDescriptionHeader
    Payload 
    PayloadNotes
    CloudEvents Mapping
    response-data-schemastring

    The schema of response data


    X
    response-statusstring

    The

    unique id identifying the event generated by DMIXstandard (ideventCorrelationIdstring

    The request id passed by NCMP

    XeXtensions (correlationid)eventTimestringThe timestamp when original event occurredXstandard (timeeventTargetstringThe target of the eventXeXtensions (target)eventTypestringThe type of the eventXstandard (typeeventSchemastring

    The event schema for async request response events

    Xstandard (dataschemaeventSchemaVersionstring

    The event schema version for async request response events

    XN/A included in 'dataschema'eventSourcestringThe source of the eventXstandard (sourceeventContentEventContentThe 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)

    FieldTypeDescriptionHeaderPayloadNotesresponse-data-schemastring

    The schema of response data

    Xresponse-statusstring

    The status of the response

    Xresponse-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

    Expand
    titleNCMP Async Request Response Event
    NcmpAsyncRequestResponse Event Object

    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)

    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


    Expand
    titleNCMP Async Request Response Event

    NcmpAsyncRequestResponse Event 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
    eventTargetstringThe target of the eventX

    extensions (target)
    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
    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)

    FieldTypeDescriptionHeaderPayloadNotes
    CloudEvents Mapping
    eventIDstringThe unique id identifying the event generated by DMI
    X
    standard (id
    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
    eXtensions (correlationid)
    as above
    eventTimestringThe timestamp when original event occurred
    X
    standard (time) eventType
    as above
    eventTargetstringThe target of the event
    X
    eXtensions (target)
    as above
    eventTypestringThe type of the event
    Xas above
    eventSchemastring

    The event schema for async request response events


    Xas above
    eventSourcestring

    The

    type eventSchema

    source of the event


    X
    standard (type
    as above
    response-data-schemastring

    The

    event

    received schema

    for async request

    of response

    events

    data


    X
    standard (dataschemaeventSchemaVersion

    response-statusstring

    The

    event schema version for async request response events

    received status of the response


    X
    N/A included in 'dataschema'eventEventThe payload of an eventXDefined by event object belowstandard (dataforwardedEventForwardedEventThe payload of a forwarded eventX

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

    standard (data
    See new proposal below
    Type:


    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)

    FieldTypeDescriptionHeaderPayloadNotes
    eventIDstringThe unique id identifying the event generated by DMI
    XOnly in payload in v1 of the payload schema.  To be removed in v2 version (will be in the header only)

    ?Can NCMP put these in the header and remove them from the 'forwardedEvent'
    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

    X

    ?as 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)

    Proposed New Schema:

    see

    Jira Legacy
    serverSystem Jira
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCPS-1660

    FieldTypeDescriptionHeaderPayload
    Notes
    NotesCloudEvents Mapping
    eventIDstringThe unique id identifying 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 aboveresponse-data-schemastring

    The received schema of response data

    Xresponse-statusstring

    The received status of the response

    Xresponse-codestring

    The received code of the response

    Xresponse-dataobject

    The data payload

    Xcontains payload of type object

    Proposed New Schema:

    see

    Jira Legacy
    serverSystem Jira
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCPS-1660

    X

    standard (id)
    eventCorrelationIdstring

    The request id passed by NCMP

    X

    extensions(correlationid)
    eventTimestringThe timestamp when original event occurredX

    standard (time)
    eventSourcestringThe source of the eventX
    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


    responseCodestring

    The received code of the response


    X
    responseDataobject

    The data payload


    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

    eventSource
    Expand
    titleDMI Async Batch Response Event

    DmiDataOperationEvent Object

    Excerpt


    FieldTypeDescriptionHeaderPayloadNotesCloudEvents Mapping
    eventIDstringThe unique id identifying the event generated by DMIX

    Mandatory. Generated by DMI-Plugin

    standard (id) 
    eventCorrelationIdstring

    The request id passed by NCMP

    X
    eXtensions(correlationid)eventTimestringThe timestamp when original event occurredXstandard (time)

    Mandatory. This is requestId that NCMP sent to client as an ACK.
    example : “request-1234" (UUID)
    extension (correlationid)
    eventTargetstringThe
    source
    destination topic of the
    eventeventTypestringThe type of the eventXstandard (type)eventSchema
    clientX
    What value should contain in this? Needs clarification, see issue #8standard (source)

    Mandatory. TBC example: my-topicextension (destination)
    sourcestringThe
    event schema for async request response eventsX
    source of the event

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

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

    FieldTypeDescriptionHeaderPayloadNoteseventCorrelationIdstring

    The request id passed by NCMP

    Xas above @Toine asked to add this property.responseStatusstring

    The received status of the response

    XresponseCodestring

    The received code of the response

    XresponseDataobject

    The data payload

    Xcontains 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

    ...

    Mandatory. Generated by DMI-Plugin

    ...

    The request id passed by NCMP

    ...

    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.

    ...

    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)

    ...

    #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

    Expand
    titleNCMP Async Batch Response Event - Client Topic

    BatchResponseEvent Object

    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

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

    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
    CloudEvents MappingeventIDstringThe unique id identifying the event generated by DMIXstandard (ideventCorrelationIdstring

    The request id passed by NCMP

    XeXtensions (correlationid)eventTimestringThe timestamp when original event occurredXstandard (timeeventTypestringThe type of the eventXstandard (typeeventSchemastring

    The event schema for async request response events

    Xstandard (dataschemaeventSchemaVersionstring

    The event schema version for async request response events

    XN/A included in 'dataschema'eventEventThe payload of an eventXJava object not yet defined by schema, see issue #2standard (data
    FieldTypeDescriptionHeaderPayloadNotes
    No Properties defined (Entire event treated as single object)

    CNCF Cloud Event alignment

    Introduction

    Image Removed

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

    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

    ...

    After

    ...

    eventId

    ...

    id

    ...

    eventSource

    ...

    source

    ...

    N/A

    ...

    specversion  (default 1.0)

    ...

    eventType

    ...

    type

    ...

    eventTime

    ...

    time

    ...

    eventSchema

    ...

    dataschema

    ...

    Optional  includes the version of the schema

    ...

    withDataContentType()

    ...

    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.

    ...

    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.

    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.

    Common NCMP response staus code & message :

    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