@startuml
!include skin.inc
participant "API consumer" as cli
participant "NFV-MANO\nfunctional entity" as srv
== Creation of a subscription ==
note over cli, srv
        Precondition: Notification endpoint URI enabled  
end note
autonumber 10
	cli -> srv: POST .../subscriptions (ManoCimSubscriptionRequest)
	group Testing the notification endpoint
		srv -> cli: GET <<Callback URI>>
		cli -> srv: 204 No Content
	end
	srv -->> srv: Create subscription\n resource
	srv -> cli: 201 Created (ManoCimSubscription)
note over cli, srv
        Postcondition: Subscription to notifications available to API consumer
end note
== Query/Read of subscriptions ==
autonumber 20
	alt Query/read all subscriptions
		cli -> srv: GET .../subscriptions/
		srv -> cli: 200 OK (ManoCimSubscription[])
	else Query/read individual subscription
		cli -> srv: GET .../subscriptions/{subscriptionId}
		srv -> cli: 200 OK (ManoCimSubscription)
	end
note over cli, srv
        Postcondition: Subscription information available to API consumer
end note
== Termination of a subscription ==
autonumber 30
	cli -> srv: DELETE .../subscriptions/{subscriptionId}
	srv -> cli: 204 No Content
note over cli, srv
        Postcondition: Subscription to notifications are deleted and not available to API consumer, 
                       notifications are not sent anymore by NFV-MANO functional entity   
end note
@enduml