summaryrefslogtreecommitdiffstats
path: root/docs/offeredapis/serviceOrder
diff options
context:
space:
mode:
authorromaingimbert <romain.gimbert@orange.com>2018-09-14 14:52:20 +0200
committerromaingimbert <romain.gimbert@orange.com>2018-09-14 14:52:20 +0200
commit8f141d17f3ea7720df479f4ae51b5a2e169548cb (patch)
tree4d309f3d24202153d6ad50dfa41c2d8ee99b70c2 /docs/offeredapis/serviceOrder
parent956d451af5e5ad5b5f0bbca34c5462455cc6d0ad (diff)
Add API Documentation for Casablanca
-update docs -update version related code -change properties MSB Change-Id: I7fb2a257ec035c53e93666d7571a2c74a0624524 Issue-ID: EXTAPI-141 Signed-off-by: romaingimbert <romain.gimbert@orange.com>
Diffstat (limited to 'docs/offeredapis/serviceOrder')
-rw-r--r--docs/offeredapis/serviceOrder/apiServiceOrder.plantuml78
-rw-r--r--docs/offeredapis/serviceOrder/asciiDoc.adoc796
-rw-r--r--docs/offeredapis/serviceOrder/documentation.html1524
-rw-r--r--docs/offeredapis/serviceOrder/markDown.md461
4 files changed, 2787 insertions, 72 deletions
diff --git a/docs/offeredapis/serviceOrder/apiServiceOrder.plantuml b/docs/offeredapis/serviceOrder/apiServiceOrder.plantuml
index eb78af2..775fdeb 100644
--- a/docs/offeredapis/serviceOrder/apiServiceOrder.plantuml
+++ b/docs/offeredapis/serviceOrder/apiServiceOrder.plantuml
@@ -1,7 +1,3 @@
-/' This work is licensed under a Creative Commons Attribution 4.0 International License.
- http://creativecommons.org/licenses/by/4.0
- Copyright 2018 Orange'/
-
@startuml
enum ActionType {
@@ -24,6 +20,15 @@ enum StateType {
enum RelationshipType {
reliesOn
}
+enum EventType {
+ ServiceOrderCreationNotification
+ ServiceOrderStateChangeNotification
+ ServiceOrderItemStateChangeNotification
+}
+enum SeverityMessage {
+ information
+ error
+}
class ErrorRepresentation {
code:int
@@ -89,6 +94,7 @@ class OrderItemRelationship {
class ServiceOrderItem {
id:string
+ percentProgress:string
@type:string
@schemaLocation:string
@baseType:string
@@ -97,6 +103,7 @@ class ServiceOrderItem {
ServiceOrderItem --> "0-1" StateType : state
ServiceOrderItem --> "0-*" OrderItemRelationship : orderItemRelationship
ServiceOrderItem --> "1-1" Service : service
+ ServiceOrderItem --> "0-*" OrderMessage : orderItemMessage
class ServiceOrder {
id:string
@@ -119,6 +126,7 @@ class ServiceOrder {
ServiceOrder --> "0-*" RelatedParty : relatedParty
ServiceOrder --> "0-*" OrderRelationship : orderRelationship
ServiceOrder --> "0-*" ServiceOrderItem : orderItem
+ ServiceOrder --> "0-*" OrderMessage : orderMessage
class OrderRelationship {
type:string
@@ -169,4 +177,66 @@ class Hub {
callback:string
}
+class CreateHub {
+ query:string
+ callback:string
+}
+
+class ServiceOrderSummary {
+ id:string
+ href:string
+ externalId:string
+ orderDate:dateTime
+ completionDateTime:dateTime
+}
+ ServiceOrderSummary --> "0-1" StateType : state
+
+class ServiceOrderCreationNotification {
+ eventId:string
+ eventDate:dateTime
+ eventType:string
+}
+ ServiceOrderCreationNotification --> "1-1" ServiceOrderSummary : event
+
+class Notification
+
+class ServiceOrderStateChangeNotification {
+ eventId:string
+ eventDate:dateTime
+ eventType:string
+}
+ ServiceOrderStateChangeNotification --> "1-1" ServiceOrderSummary : event
+
+class ServiceOrderItemSummary {
+ id:string
+}
+ ServiceOrderItemSummary --> "0-1" ActionType : action
+ ServiceOrderItemSummary --> "0-1" StateType : state
+ ServiceOrderItemSummary --> "1-1" Service : service
+
+class ServiceOrderSummaryWithItem {
+ id:string
+ href:string
+ externalId:string
+ orderDate:dateTime
+ completionDateTime:dateTime
+}
+ ServiceOrderSummaryWithItem --> "0-1" StateType : state
+ ServiceOrderSummaryWithItem --> "0-*" ServiceOrderItemSummary : orderItem
+
+class ServiceOrderItemStateChangeNotification {
+ eventId:string
+ eventDate:dateTime
+ eventType:string
+}
+ ServiceOrderItemStateChangeNotification --> "1-1" ServiceOrderSummaryWithItem : event
+
+class OrderMessage {
+ code:string
+ field:string
+ messageInformation:string
+ correctionRequired:boolean
+}
+ OrderMessage --> "1-1" SeverityMessage : severity
+
@enduml \ No newline at end of file
diff --git a/docs/offeredapis/serviceOrder/asciiDoc.adoc b/docs/offeredapis/serviceOrder/asciiDoc.adoc
index 29da92f..72ba736 100644
--- a/docs/offeredapis/serviceOrder/asciiDoc.adoc
+++ b/docs/offeredapis/serviceOrder/asciiDoc.adoc
@@ -1,9 +1,3 @@
-////
-This work is licensed under a Creative Commons Attribution 4.0 International License.
-http://creativecommons.org/licenses/by/4.0
-Copyright 2018 Orange
-////
-
= API ServiceOrder
@@ -12,45 +6,597 @@ Copyright 2018 Orange
=== Api URL
-https://api-designer.sso.infra.ftgroup/swagger-ui/?url=https://api-designer.sso.infra.ftgroup/api/1.0/apis/kl1kgvz1zR/swagger.json[Swagger UI]
+https://api-designer.sso.infra.ftgroup/swagger-ui/?url=https://api-designer.sso.infra.ftgroup/api/1.0/apis/Ve1zj3V1gj/swagger.json[Swagger UI]
-https://plantuml.rd.francetelecom.fr/proxy?fmt=svg&src=https://api-designer.sso.infra.ftgroup/api/1.0/apis/kl1kgvz1zR/plantuml&noCache=934804.0[plant UML UI]
+https://plantuml.rd.francetelecom.fr/proxy?fmt=svg&src=https://api-designer.sso.infra.ftgroup/api/1.0/apis/Ve1zj3V1gj/plantuml&noCache=366455.0[plant UML UI]
-serviceOrder API designed for ONAP Beijing Release.
+serviceOrder API designed for ONAP.
This API is build from TMF open API18.0 (applying TMF Guideline 3.0);
Only operations GET (by id and list) and POST are available.
=== Version information
[%hardbreaks]
-__Version__ : 1.0.0_inProgress
+__Version__ : 3.0.0_inProgress
=== URI scheme
[%hardbreaks]
__Host__ : serverRoot
-__BasePath__ : /nbi/api/v1
+__BasePath__ : /nbi/api/v3
__Schemes__ : HTTPS
=== Tags
+* Hub
+* Notification
* ServiceOrder : A Service Order is a type of order which can be used to describe a group of operations on service – one service order item per service. An action at the level of the service order item describe the operation to be done on a service (add, terminate for example). The service order is triggered from the BSS system in charge of the product order management to ONAP that will manage the service fulfillment.
-=== Consumes
+=== Produces
* `application/json;charset=utf-8`
-=== Produces
+[[_paths]]
+== Resources
+
+[[_hub_resource]]
+=== Hub
+
+[[_hubcreate]]
+==== Create Hub
+....
+POST /hub
+....
+
+
+===== Description
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+===== Parameters
+
+[options="header", cols=".^2,.^3,.^4"]
+|===
+|Type|Name|Schema
+|**Body**|**Hub** +
+__required__|<<_createhub,CreateHub>>
+|===
+
+
+===== Responses
+
+[options="header", cols=".^2,.^14,.^4"]
+|===
+|HTTP Code|Description|Schema
+|**201**|Success +
+**Headers** : +
+`location` (string)|file
+|**400**|Bad Request
+
+List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>>
+|**401**|Unauthorized
+
+List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>>
+|**403**|Forbidden
+
+List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>>
+|**404**|Not Found
+
+List of supported error codes:
+- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>>
+|**422**|Unprocessable entity
+
+Functional error|<<_errorrepresentation,ErrorRepresentation>>
+|**500**|Internal Server Error
+
+List of supported error codes:
+- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>>
+|**503**|Service Unavailable
+
+List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>>
+|===
+
+
+===== Consumes
* `application/json;charset=utf-8`
-[[_paths]]
-== Resources
+[[_hubfind]]
+==== Retrieve a lits of hub
+....
+GET /hub
+....
+
+
+===== Description
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+===== Parameters
+
+[options="header", cols=".^2,.^3,.^4"]
+|===
+|Type|Name|Schema
+|**Query**|**eventType** +
+__optional__|enum (ServiceOrderCreationNotification, ServiceOrderStateChangeNotification, ServiceOrderItemStateChangeNotification)
+|**Query**|**id** +
+__optional__|string
+|===
+
+
+===== Responses
+
+[options="header", cols=".^2,.^14,.^4"]
+|===
+|HTTP Code|Description|Schema
+|**200**|Success|< <<_hub,Hub>> > array
+|**400**|Bad Request
+
+List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>>
+|**401**|Unauthorized
+
+List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>>
+|**403**|Forbidden
+
+List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>>
+|**404**|Not Found
+
+List of supported error codes:
+- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>>
+|**422**|Unprocessable entity
+
+Functional error|<<_errorrepresentation,ErrorRepresentation>>
+|**500**|Internal Server Error
+
+List of supported error codes:
+- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>>
+|**503**|Service Unavailable
+
+List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>>
+|===
+
+
+===== Produces
+
+* `application/json;charset=utf-8`
+
+
+[[_hubget]]
+==== Retrieve an HUB by id
+....
+GET /hub/{hubId}
+....
+
+
+===== Description
+Retrieve an HUB by id
+
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+===== Parameters
+
+[options="header", cols=".^2,.^3,.^4"]
+|===
+|Type|Name|Schema
+|**Path**|**hubId** +
+__required__|string
+|===
+
+
+===== Responses
+
+[options="header", cols=".^2,.^14,.^4"]
+|===
+|HTTP Code|Description|Schema
+|**200**|Success|<<_hub,Hub>>
+|**400**|Bad Request
+
+List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>>
+|**401**|Unauthorized
+
+List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>>
+|**403**|Forbidden
+
+List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>>
+|**404**|Not Found
+
+List of supported error codes:
+- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>>
+|**422**|Unprocessable entity
+
+Functional error|<<_errorrepresentation,ErrorRepresentation>>
+|**500**|Internal Server Error
+
+List of supported error codes:
+- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>>
+|**503**|Service Unavailable
+
+List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>>
+|===
+
+
+===== Produces
+
+* `application/json;charset=utf-8`
+
+
+[[_hubdelete]]
+==== delete hub
+....
+DELETE /hub/{hubId}
+....
+
+
+===== Description
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+===== Parameters
+
+[options="header", cols=".^2,.^3,.^4"]
+|===
+|Type|Name|Schema
+|**Path**|**hubId** +
+__required__|string
+|===
+
+
+===== Responses
+
+[options="header", cols=".^2,.^14,.^4"]
+|===
+|HTTP Code|Description|Schema
+|**204**|Success|No Content
+|**400**|Bad Request
+
+List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>>
+|**401**|Unauthorized
+
+List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>>
+|**403**|Forbidden
+
+List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>>
+|**404**|Not Found
+
+List of supported error codes:
+- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>>
+|**422**|Unprocessable entity
+
+Functional error|<<_errorrepresentation,ErrorRepresentation>>
+|**500**|Internal Server Error
+
+List of supported error codes:
+- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>>
+|**503**|Service Unavailable
+
+List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>>
+|===
+
+
+[[_notification_resource]]
+=== Notification
+
+[[_notificationserviceordercreationnotification]]
+==== Service order creation notification
+....
+POST /notification/serviceOrderCreationNotification
+....
+
+
+===== Description
+Service order creation notification
+
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+===== Parameters
+
+[options="header", cols=".^2,.^3,.^4"]
+|===
+|Type|Name|Schema
+|**Body**|**serviceOrderCreationNotification** +
+__required__|<<_serviceordercreationnotification,ServiceOrderCreationNotification>>
+|===
+
+
+===== Responses
+
+[options="header", cols=".^2,.^14,.^4"]
+|===
+|HTTP Code|Description|Schema
+|**204**|Success|No Content
+|**400**|Bad Request
+
+List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>>
+|**401**|Unauthorized
+
+List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>>
+|**403**|Forbidden
+
+List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>>
+|**404**|Not Found
+
+List of supported error codes:
+- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>>
+|**422**|Unprocessable entity
+
+Functional error|<<_errorrepresentation,ErrorRepresentation>>
+|**500**|Internal Server Error
+
+List of supported error codes:
+- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>>
+|**503**|Service Unavailable
+
+List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>>
+|===
+
+
+===== Consumes
+
+* `application/json;charset=utf-8`
+
+
+[[_notificationserviceorderitemstatechangenotification]]
+==== ServiceOrder Item State Change Notification description
+....
+POST /notification/serviceOrderItemStateChangeNotification
+....
+
+
+===== Description
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+===== Parameters
+
+[options="header", cols=".^2,.^3,.^4"]
+|===
+|Type|Name|Schema
+|**Body**|**serviceOrderItemStateChangeNotification** +
+__required__|<<_serviceorderitemstatechangenotification,ServiceOrderItemStateChangeNotification>>
+|===
+
+
+===== Responses
+
+[options="header", cols=".^2,.^14,.^4"]
+|===
+|HTTP Code|Description|Schema
+|**204**|Success|No Content
+|**400**|Bad Request
+
+List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>>
+|**401**|Unauthorized
+
+List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>>
+|**403**|Forbidden
+
+List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>>
+|**404**|Not Found
+
+List of supported error codes:
+- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>>
+|**422**|Unprocessable entity
+
+Functional error|<<_errorrepresentation,ErrorRepresentation>>
+|**500**|Internal Server Error
+
+List of supported error codes:
+- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>>
+|**503**|Service Unavailable
+
+List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>>
+|===
+
+
+===== Consumes
+
+* `application/json;charset=utf-8`
+
+
+[[_notificationserviceorderstatechangenotification]]
+==== Service order state change notification description
+....
+POST /notification/serviceOrderStateChangeNotification
+....
+
+
+===== Description
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+===== Parameters
+
+[options="header", cols=".^2,.^3,.^4"]
+|===
+|Type|Name|Schema
+|**Body**|**serviceOrderstateChangeNotification** +
+__required__|<<_serviceorderstatechangenotification,ServiceOrderStateChangeNotification>>
+|===
+
+
+===== Responses
+
+[options="header", cols=".^2,.^14,.^4"]
+|===
+|HTTP Code|Description|Schema
+|**204**|Success|No Content
+|**400**|Bad Request
+
+List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>>
+|**401**|Unauthorized
+
+List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>>
+|**403**|Forbidden
+
+List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>>
+|**404**|Not Found
+
+List of supported error codes:
+- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>>
+|**422**|Unprocessable entity
+
+Functional error|<<_errorrepresentation,ErrorRepresentation>>
+|**500**|Internal Server Error
+
+List of supported error codes:
+- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>>
+|**503**|Service Unavailable
+
+List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>>
+|===
+
+
+===== Consumes
+
+* `application/json;charset=utf-8`
+
[[_serviceorder_resource]]
=== ServiceOrder
@@ -69,6 +615,11 @@ This operation creates a service order entity.
The TMF Open API specification document provides the list of mandatory and non mandatory attributes when creating a ServiceOrder, including any possible rule conditions and applicable default values.
POST should be used without specifying the id and the href, the Service Order Management system is in charge of generating the id + href for the ServiceOrder.
+In Beijing Release, NBI will use only POST {{url}}/ecomp/mso/infra/serviceInstances/v4 SO API. This mean that only the 'service-instance' level will be created in AAI. Additional resource like VNF and/OR VF are not created.
+
+In Casablanca release, NBI has been improved to also be able to use POST {{url}}/e2eServiceInstances/v3 SO API. This API is able to instantiate in ONAP E2E service; This is useful for CCVPN and VoLTE UC.
+Depending on the service category defined in SDC, NBI will use one or the other SO API. If category starts with e2e, NBI will use {url}}/e2eServiceInstances/v3 SO API - else it will use {{url}}/ecomp/mso/infra/serviceInstances/v4 SO API.
+
Specific business errors for current operation will be encapsulated in
HTTP Response 422 Unprocessable entity
@@ -103,7 +654,7 @@ __required__|<<_createserviceorder,CreateServiceOrder>>
[options="header", cols=".^2,.^14,.^4"]
|===
|HTTP Code|Description|Schema
-|**201**|Success|<<_createserviceorder,CreateServiceOrder>>
+|**201**|Success|<<_serviceorder,ServiceOrder>>
|**400**|Bad Request
List of supported error codes:
@@ -164,6 +715,16 @@ List of supported error codes:
|===
+===== Consumes
+
+* `application/json;charset=utf-8`
+
+
+===== Produces
+
+* `application/json;charset=utf-8`
+
+
[[_serviceorderfind]]
==== List service orders
....
@@ -258,6 +819,11 @@ List of supported error codes:
|===
+===== Produces
+
+* `application/json;charset=utf-8`
+
+
[[_serviceorderget]]
==== Retrieve a service order
....
@@ -336,6 +902,11 @@ List of supported error codes:
|===
+===== Produces
+
+* `application/json;charset=utf-8`
+
+
[[_definitions]]
== Definitions
@@ -347,6 +918,23 @@ modify is not managed in Beijing release
__Type__ : enum (add, modify, delete, noChange)
+[[_createhub]]
+=== CreateHub
+This structure is used as a request for POST Hub operation
+
+
+[options="header", cols=".^3,.^11,.^4"]
+|===
+|Name|Description|Schema
+|**callback** +
+__required__|Address where notification must be send|string
+|**query** +
+__required__|The query must have an eventType=notificationName information.
+Optionally a ? could be added to reduce hub.
+query”:”eventType = ServiceOrderStateChangeNotification”&amp;serviceOrder.state=COMPLETED|string
+|===
+
+
[[_createserviceorder]]
=== CreateServiceOrder
This structure is used in the operation POST for a serviceOrder request.
@@ -434,24 +1022,36 @@ __optional__|http error code extension like 400-2|string
|===
+[[_eventtype]]
+=== EventType
+__Type__ : enum (ServiceOrderCreationNotification, ServiceOrderStateChangeNotification, ServiceOrderItemStateChangeNotification)
+
+
[[_hub]]
=== Hub
An HUB resource is used by client side to subscribe to notification.
Not managed in the Beijing release.
-[options="header", cols=".^3,.^4"]
+[options="header", cols=".^3,.^11,.^4"]
|===
-|Name|Schema
+|Name|Description|Schema
|**callback** +
-__required__|string
+__required__|Address where notification must be send|string
|**id** +
-__optional__|string
+__optional__|Hub Id|string
|**query** +
-__optional__|string
+__required__||string
|===
+[[_notification]]
+=== Notification
+Used to describe notification for this API
+
+__Type__ : object
+
+
[[_orderitemrelationship]]
=== OrderItemRelationship
Linked order item to the one containing this attribute.
@@ -468,6 +1068,27 @@ __required__||<<_relationshiptype,RelationshipType>>
|===
+[[_ordermessage]]
+=== OrderMessage
+An optional array of messages associated with the Order
+
+
+[options="header", cols=".^3,.^11,.^4"]
+|===
+|Name|Description|Schema
+|**code** +
+__optional__|A code associated to this message|string
+|**correctionRequired** +
+__required__|Indicator that an action is required to allow service order fullfilment to follow up|boolean
+|**field** +
+__optional__|Service Order attribute related to this error message|string
+|**messageInformation** +
+__optional__|Message related to this order|string
+|**severity** +
+__required__||<<_severitymessage,SeverityMessage>>
+|===
+
+
[[_orderrelationship]]
=== OrderRelationship
Linked order to the one containing this attribute.
@@ -607,6 +1228,8 @@ __required__|ID created on repository side|string
__optional__||string (date-time)
|**orderItem** +
__optional__||< <<_serviceorderitem,ServiceOrderItem>> > array
+|**orderMessage** +
+__optional__||< <<_ordermessage,OrderMessage>> > array
|**orderRelationship** +
__optional__||< <<_orderrelationship,OrderRelationship>> > array
|**priority** +
@@ -624,6 +1247,25 @@ __optional__||<<_statetype,StateType>>
|===
+[[_serviceordercreationnotification]]
+=== ServiceOrderCreationNotification
+Notification structure for a service order creation notification
+
+
+[options="header", cols=".^3,.^11,.^4"]
+|===
+|Name|Description|Schema
+|**event** +
+__required__||<<_serviceordersummary,ServiceOrderSummary>>
+|**eventDate** +
+__required__||string (date-time)
+|**eventId** +
+__required__||string
+|**eventType** +
+__required__|**Default** : `"ServiceOrderCreationNotification"`|string
+|===
+
+
[[_serviceorderitem]]
=== ServiceOrderItem
An identified part of the order. A service order is decomposed into one or more order items.
@@ -643,8 +1285,48 @@ not used in Beijing relase|string
__optional__||<<_actiontype,ActionType>>
|**id** +
__required__|Identifier of the line item (generally it is a sequence number 01, 02, 03, …)|string
+|**orderItemMessage** +
+__optional__||< <<_ordermessage,OrderMessage>> > array
|**orderItemRelationship** +
__optional__||< <<_orderitemrelationship,OrderItemRelationship>> > array
+|**percentProgress** +
+__optional__|Progress of the delivery in percentage.|string
+|**service** +
+__required__||<<_service,Service>>
+|**state** +
+__optional__||<<_statetype,StateType>>
+|===
+
+
+[[_serviceorderitemstatechangenotification]]
+=== ServiceOrderItemStateChangeNotification
+
+[options="header", cols=".^3,.^11,.^4"]
+|===
+|Name|Description|Schema
+|**event** +
+__required__||<<_serviceordersummarywithitem,ServiceOrderSummaryWithItem>>
+|**eventDate** +
+__required__||string (date-time)
+|**eventId** +
+__required__||string
+|**eventType** +
+__required__|**Default** : `"ServiceOrderStateChangeNotification"`|string
+|===
+
+
+[[_serviceorderitemsummary]]
+=== ServiceOrderItemSummary
+Service Order item summary to be used for notification
+
+
+[options="header", cols=".^3,.^11,.^4"]
+|===
+|Name|Description|Schema
+|**action** +
+__optional__||<<_actiontype,ActionType>>
+|**id** +
+__required__|Identifier of the line item (generally it is a sequence number 01, 02, 03, …)|string
|**service** +
__required__||<<_service,Service>>
|**state** +
@@ -652,6 +1334,73 @@ __optional__||<<_statetype,StateType>>
|===
+[[_serviceorderstatechangenotification]]
+=== ServiceOrderStateChangeNotification
+Service order state change notification description
+
+
+[options="header", cols=".^3,.^11,.^4"]
+|===
+|Name|Description|Schema
+|**event** +
+__required__||<<_serviceordersummary,ServiceOrderSummary>>
+|**eventDate** +
+__required__||string (date-time)
+|**eventId** +
+__required__||string
+|**eventType** +
+__required__|**Default** : `"ServiceOrderStateChangeNotification"`|string
+|===
+
+
+[[_serviceordersummary]]
+=== ServiceOrderSummary
+This structure is used to provide a subset of serviceOrder attributes to be provided in particular for notification messages
+
+
+[options="header", cols=".^3,.^11,.^4"]
+|===
+|Name|Description|Schema
+|**completionDateTime** +
+__optional__|Date when the order was completed|string (date-time)
+|**externalId** +
+__optional__|ID given by the consumer and only understandable by him (to facilitate his searches)|string
+|**href** +
+__optional__|Hyperlink to access the order|string
+|**id** +
+__required__|ID created on repository side|string
+|**orderDate** +
+__optional__||string (date-time)
+|**state** +
+__optional__||<<_statetype,StateType>>
+|===
+
+
+[[_serviceordersummarywithitem]]
+=== ServiceOrderSummaryWithItem
+Service order item summary with item description
+
+
+[options="header", cols=".^3,.^11,.^4"]
+|===
+|Name|Description|Schema
+|**completionDateTime** +
+__optional__|Date when the order was completed|string (date-time)
+|**externalId** +
+__optional__|ID given by the consumer and only understandable by him (to facilitate his searches)|string
+|**href** +
+__optional__|Hyperlink to access the order|string
+|**id** +
+__required__|ID created on repository side|string
+|**orderDate** +
+__optional__||string (date-time)
+|**orderItem** +
+__optional__||< <<_serviceorderitemsummary,ServiceOrderItemSummary>> > array
+|**state** +
+__optional__||<<_statetype,StateType>>
+|===
+
+
[[_serviceref]]
=== ServiceRef
Service references
@@ -714,6 +1463,11 @@ Not used in Beijing release|string
|===
+[[_severitymessage]]
+=== SeverityMessage
+__Type__ : enum (information, error)
+
+
[[_statetype]]
=== StateType
List of possible state for the order and the orderItem.
diff --git a/docs/offeredapis/serviceOrder/documentation.html b/docs/offeredapis/serviceOrder/documentation.html
index 09732b5..cab4964 100644
--- a/docs/offeredapis/serviceOrder/documentation.html
+++ b/docs/offeredapis/serviceOrder/documentation.html
@@ -1,8 +1,3 @@
-<!--
-This work is licensed under a Creative Commons Attribution 4.0 International License.
-http://creativecommons.org/licenses/by/4.0
-Copyright 2018 Orange
--->
<!DOCTYPE html>
<html lang="en">
<head>
@@ -442,33 +437,45 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_version_information">Version information</a></li>
<li><a href="#_uri_scheme">URI scheme</a></li>
<li><a href="#_tags">Tags</a></li>
-<li><a href="#_consumes">Consumes</a></li>
<li><a href="#_produces">Produces</a></li>
</ul>
</li>
<li><a href="#_paths">Resources</a>
<ul class="sectlevel2">
+<li><a href="#_hub_resource">Hub</a></li>
+<li><a href="#_notification_resource">Notification</a></li>
<li><a href="#_serviceorder_resource">ServiceOrder</a></li>
</ul>
</li>
<li><a href="#_definitions">Definitions</a>
<ul class="sectlevel2">
<li><a href="#_actiontype">ActionType</a></li>
+<li><a href="#_createhub">CreateHub</a></li>
<li><a href="#_createserviceorder">CreateServiceOrder</a></li>
<li><a href="#_createserviceorderitem">CreateServiceOrderItem</a></li>
<li><a href="#_errorrepresentation">ErrorRepresentation</a></li>
+<li><a href="#_eventtype">EventType</a></li>
<li><a href="#_hub">Hub</a></li>
+<li><a href="#_notification">Notification</a></li>
<li><a href="#_orderitemrelationship">OrderItemRelationship</a></li>
+<li><a href="#_ordermessage">OrderMessage</a></li>
<li><a href="#_orderrelationship">OrderRelationship</a></li>
<li><a href="#_relatedparty">RelatedParty</a></li>
<li><a href="#_relationshiptype">RelationshipType</a></li>
<li><a href="#_service">Service</a></li>
<li><a href="#_servicecharacteristic">ServiceCharacteristic</a></li>
<li><a href="#_serviceorder">ServiceOrder</a></li>
+<li><a href="#_serviceordercreationnotification">ServiceOrderCreationNotification</a></li>
<li><a href="#_serviceorderitem">ServiceOrderItem</a></li>
+<li><a href="#_serviceorderitemstatechangenotification">ServiceOrderItemStateChangeNotification</a></li>
+<li><a href="#_serviceorderitemsummary">ServiceOrderItemSummary</a></li>
+<li><a href="#_serviceorderstatechangenotification">ServiceOrderStateChangeNotification</a></li>
+<li><a href="#_serviceordersummary">ServiceOrderSummary</a></li>
+<li><a href="#_serviceordersummarywithitem">ServiceOrderSummaryWithItem</a></li>
<li><a href="#_serviceref">ServiceRef</a></li>
<li><a href="#_servicerelationship">ServiceRelationship</a></li>
<li><a href="#_servicespecificationref">ServiceSpecificationRef</a></li>
+<li><a href="#_severitymessage">SeverityMessage</a></li>
<li><a href="#_statetype">StateType</a></li>
<li><a href="#_targetserviceschema">TargetServiceSchema</a></li>
<li><a href="#_value">Value</a></li>
@@ -482,8 +489,15 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<h2 id="_overview">Overview</h2>
<div class="sectionbody">
<div class="sect2">
+<h3 id="_api_url">Api URL</h3>
<div class="paragraph">
-<p>serviceOrder API designed for ONAP Beijing Release.
+<p><a href="https://api-designer.sso.infra.ftgroup/swagger-ui/?url=https://api-designer.sso.infra.ftgroup/api/1.0/apis/Ve1zj3V1gj/swagger.json">Swagger UI</a></p>
+</div>
+<div class="paragraph">
+<p><a href="https://plantuml.rd.francetelecom.fr/proxy?fmt=svg&amp;src=https://api-designer.sso.infra.ftgroup/api/1.0/apis/Ve1zj3V1gj/plantuml&amp;noCache=366455.0">plant UML UI</a></p>
+</div>
+<div class="paragraph">
+<p>serviceOrder API designed for ONAP.
This API is build from TMF open API18.0 (applying TMF Guideline 3.0);
Only operations GET (by id and list) and POST are available.</p>
</div>
@@ -491,14 +505,14 @@ Only operations GET (by id and list) and POST are available.</p>
<div class="sect2">
<h3 id="_version_information">Version information</h3>
<div class="paragraph">
-<p><em>Version</em> : 1.0.0_inProgress</p>
+<p><em>Version</em> : 3.0.0_inProgress</p>
</div>
</div>
<div class="sect2">
<h3 id="_uri_scheme">URI scheme</h3>
<div class="paragraph">
<p><em>Host</em> : serverRoot<br>
-<em>BasePath</em> : /nbi/api/v1<br>
+<em>BasePath</em> : /nbi/api/v3<br>
<em>Schemes</em> : HTTPS</p>
</div>
</div>
@@ -507,13 +521,19 @@ Only operations GET (by id and list) and POST are available.</p>
<div class="ulist">
<ul>
<li>
+<p>Hub</p>
+</li>
+<li>
+<p>Notification</p>
+</li>
+<li>
<p>ServiceOrder : A Service Order is a type of order which can be used to describe a group of operations on service – one service order item per service. An action at the level of the service order item describe the operation to be done on a service (add, terminate for example). The service order is triggered from the BSS system in charge of the product order management to ONAP that will manage the service fulfillment.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
-<h3 id="_consumes">Consumes</h3>
+<h3 id="_produces">Produces</h3>
<div class="ulist">
<ul>
<li>
@@ -522,8 +542,977 @@ Only operations GET (by id and list) and POST are available.</p>
</ul>
</div>
</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_paths">Resources</h2>
+<div class="sectionbody">
<div class="sect2">
-<h3 id="_produces">Produces</h3>
+<h3 id="_hub_resource">Hub</h3>
+<div class="sect3">
+<h4 id="_hubcreate">Create Hub</h4>
+<div class="literalblock">
+<div class="content">
+<pre>POST /hub</pre>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_description">Description</h5>
+<div class="paragraph">
+<p>Specific business errors for current operation will be encapsulated in</p>
+</div>
+<div class="paragraph">
+<p>HTTP Response 422 Unprocessable entity</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_parameters">Parameters</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Body</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Hub</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_createhub">CreateHub</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_responses">Responses</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 10%;">
+<col style="width: 70%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>201</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Success<br>
+<strong>Headers</strong> : <br>
+<code>location</code> (string)</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">file</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>400</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Bad Request</p>
+<p class="tableblock">List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>401</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unauthorized</p>
+<p class="tableblock">List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>403</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Forbidden</p>
+<p class="tableblock">List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>404</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Not Found</p>
+<p class="tableblock">List of supported error codes:
+- 60: Resource not found</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>422</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unprocessable entity</p>
+<p class="tableblock">Functional error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>500</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Internal Server Error</p>
+<p class="tableblock">List of supported error codes:
+- 1: Internal error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>503</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Service Unavailable</p>
+<p class="tableblock">List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_consumes">Consumes</h5>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json;charset=utf-8</code></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_hubfind">Retrieve a lits of hub</h4>
+<div class="literalblock">
+<div class="content">
+<pre>GET /hub</pre>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_description_2">Description</h5>
+<div class="paragraph">
+<p>Specific business errors for current operation will be encapsulated in</p>
+</div>
+<div class="paragraph">
+<p>HTTP Response 422 Unprocessable entity</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_parameters_2">Parameters</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Query</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>eventType</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">enum (ServiceOrderCreationNotification, ServiceOrderStateChangeNotification, ServiceOrderItemStateChangeNotification)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Query</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>id</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_responses_2">Responses</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 10%;">
+<col style="width: 70%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Success</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">&lt; <a href="#_hub">Hub</a> &gt; array</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>400</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Bad Request</p>
+<p class="tableblock">List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>401</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unauthorized</p>
+<p class="tableblock">List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>403</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Forbidden</p>
+<p class="tableblock">List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>404</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Not Found</p>
+<p class="tableblock">List of supported error codes:
+- 60: Resource not found</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>422</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unprocessable entity</p>
+<p class="tableblock">Functional error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>500</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Internal Server Error</p>
+<p class="tableblock">List of supported error codes:
+- 1: Internal error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>503</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Service Unavailable</p>
+<p class="tableblock">List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_produces_2">Produces</h5>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json;charset=utf-8</code></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_hubget">Retrieve an HUB by id</h4>
+<div class="literalblock">
+<div class="content">
+<pre>GET /hub/{hubId}</pre>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_description_3">Description</h5>
+<div class="paragraph">
+<p>Retrieve an HUB by id</p>
+</div>
+<div class="paragraph">
+<p>Specific business errors for current operation will be encapsulated in</p>
+</div>
+<div class="paragraph">
+<p>HTTP Response 422 Unprocessable entity</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_parameters_3">Parameters</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>hubId</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_responses_3">Responses</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 10%;">
+<col style="width: 70%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Success</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_hub">Hub</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>400</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Bad Request</p>
+<p class="tableblock">List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>401</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unauthorized</p>
+<p class="tableblock">List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>403</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Forbidden</p>
+<p class="tableblock">List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>404</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Not Found</p>
+<p class="tableblock">List of supported error codes:
+- 60: Resource not found</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>422</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unprocessable entity</p>
+<p class="tableblock">Functional error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>500</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Internal Server Error</p>
+<p class="tableblock">List of supported error codes:
+- 1: Internal error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>503</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Service Unavailable</p>
+<p class="tableblock">List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_produces_3">Produces</h5>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json;charset=utf-8</code></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_hubdelete">delete hub</h4>
+<div class="literalblock">
+<div class="content">
+<pre>DELETE /hub/{hubId}</pre>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_description_4">Description</h5>
+<div class="paragraph">
+<p>Specific business errors for current operation will be encapsulated in</p>
+</div>
+<div class="paragraph">
+<p>HTTP Response 422 Unprocessable entity</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_parameters_4">Parameters</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>hubId</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_responses_4">Responses</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 10%;">
+<col style="width: 70%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>204</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Success</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">No Content</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>400</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Bad Request</p>
+<p class="tableblock">List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>401</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unauthorized</p>
+<p class="tableblock">List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>403</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Forbidden</p>
+<p class="tableblock">List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>404</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Not Found</p>
+<p class="tableblock">List of supported error codes:
+- 60: Resource not found</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>422</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unprocessable entity</p>
+<p class="tableblock">Functional error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>500</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Internal Server Error</p>
+<p class="tableblock">List of supported error codes:
+- 1: Internal error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>503</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Service Unavailable</p>
+<p class="tableblock">List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_notification_resource">Notification</h3>
+<div class="sect3">
+<h4 id="_notificationserviceordercreationnotification">Service order creation notification</h4>
+<div class="literalblock">
+<div class="content">
+<pre>POST /notification/serviceOrderCreationNotification</pre>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_description_5">Description</h5>
+<div class="paragraph">
+<p>Service order creation notification</p>
+</div>
+<div class="paragraph">
+<p>Specific business errors for current operation will be encapsulated in</p>
+</div>
+<div class="paragraph">
+<p>HTTP Response 422 Unprocessable entity</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_parameters_5">Parameters</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Body</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>serviceOrderCreationNotification</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_serviceordercreationnotification">ServiceOrderCreationNotification</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_responses_5">Responses</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 10%;">
+<col style="width: 70%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>204</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Success</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">No Content</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>400</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Bad Request</p>
+<p class="tableblock">List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>401</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unauthorized</p>
+<p class="tableblock">List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>403</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Forbidden</p>
+<p class="tableblock">List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>404</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Not Found</p>
+<p class="tableblock">List of supported error codes:
+- 60: Resource not found</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>422</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unprocessable entity</p>
+<p class="tableblock">Functional error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>500</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Internal Server Error</p>
+<p class="tableblock">List of supported error codes:
+- 1: Internal error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>503</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Service Unavailable</p>
+<p class="tableblock">List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_consumes_2">Consumes</h5>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json;charset=utf-8</code></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_notificationserviceorderitemstatechangenotification">ServiceOrder Item State Change Notification description</h4>
+<div class="literalblock">
+<div class="content">
+<pre>POST /notification/serviceOrderItemStateChangeNotification</pre>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_description_6">Description</h5>
+<div class="paragraph">
+<p>Specific business errors for current operation will be encapsulated in</p>
+</div>
+<div class="paragraph">
+<p>HTTP Response 422 Unprocessable entity</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_parameters_6">Parameters</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Body</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>serviceOrderItemStateChangeNotification</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_serviceorderitemstatechangenotification">ServiceOrderItemStateChangeNotification</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_responses_6">Responses</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 10%;">
+<col style="width: 70%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>204</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Success</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">No Content</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>400</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Bad Request</p>
+<p class="tableblock">List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>401</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unauthorized</p>
+<p class="tableblock">List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>403</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Forbidden</p>
+<p class="tableblock">List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>404</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Not Found</p>
+<p class="tableblock">List of supported error codes:
+- 60: Resource not found</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>422</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unprocessable entity</p>
+<p class="tableblock">Functional error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>500</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Internal Server Error</p>
+<p class="tableblock">List of supported error codes:
+- 1: Internal error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>503</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Service Unavailable</p>
+<p class="tableblock">List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_consumes_3">Consumes</h5>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json;charset=utf-8</code></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_notificationserviceorderstatechangenotification">Service order state change notification description</h4>
+<div class="literalblock">
+<div class="content">
+<pre>POST /notification/serviceOrderStateChangeNotification</pre>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_description_7">Description</h5>
+<div class="paragraph">
+<p>Specific business errors for current operation will be encapsulated in</p>
+</div>
+<div class="paragraph">
+<p>HTTP Response 422 Unprocessable entity</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_parameters_7">Parameters</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Body</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>serviceOrderstateChangeNotification</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_serviceorderstatechangenotification">ServiceOrderStateChangeNotification</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_responses_7">Responses</h5>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 10%;">
+<col style="width: 70%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>204</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Success</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">No Content</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>400</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Bad Request</p>
+<p class="tableblock">List of supported error codes:
+- 20: Invalid URL parameter value
+- 21: Missing body
+- 22: Invalid body
+- 23: Missing body field
+- 24: Invalid body field
+- 25: Missing header
+- 26: Invalid header value
+- 27: Missing query-string parameter
+- 28: Invalid query-string parameter value</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>401</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unauthorized</p>
+<p class="tableblock">List of supported error codes:
+- 40: Missing credentials
+- 41: Invalid credentials
+- 42: Expired credentials</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>403</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Forbidden</p>
+<p class="tableblock">List of supported error codes:
+- 50: Access denied
+- 51: Forbidden requester
+- 52: Forbidden user
+- 53: Too many requests</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>404</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Not Found</p>
+<p class="tableblock">List of supported error codes:
+- 60: Resource not found</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>422</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Unprocessable entity</p>
+<p class="tableblock">Functional error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>500</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Internal Server Error</p>
+<p class="tableblock">List of supported error codes:
+- 1: Internal error</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>503</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Service Unavailable</p>
+<p class="tableblock">List of supported error codes:
+- 5: The service is temporarily unavailable
+- 6: Orange API is over capacity, retry later !</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_errorrepresentation">ErrorRepresentation</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_consumes_4">Consumes</h5>
<div class="ulist">
<ul>
<li>
@@ -534,9 +1523,6 @@ Only operations GET (by id and list) and POST are available.</p>
</div>
</div>
</div>
-<div class="sect1">
-<h2 id="_paths">Resources</h2>
-<div class="sectionbody">
<div class="sect2">
<h3 id="_serviceorder_resource">ServiceOrder</h3>
<div class="paragraph">
@@ -550,13 +1536,20 @@ Only operations GET (by id and list) and POST are available.</p>
</div>
</div>
<div class="sect4">
-<h5 id="_description">Description</h5>
+<h5 id="_description_8">Description</h5>
<div class="paragraph">
<p>This operation creates a service order entity.
The TMF Open API specification document provides the list of mandatory and non mandatory attributes when creating a ServiceOrder, including any possible rule conditions and applicable default values.
POST should be used without specifying the id and the href, the Service Order Management system is in charge of generating the id + href for the ServiceOrder.</p>
</div>
<div class="paragraph">
+<p>In Beijing Release, NBI will use only POST {{url}}/ecomp/mso/infra/serviceInstances/v4 SO API. This mean that only the 'service-instance' level will be created in AAI. Additional resource like VNF and/OR VF are not created.</p>
+</div>
+<div class="paragraph">
+<p>In Casablanca release, NBI has been improved to also be able to use POST {{url}}/e2eServiceInstances/v3 SO API. This API is able to instantiate in ONAP E2E service; This is useful for CCVPN and VoLTE UC.
+Depending on the service category defined in SDC, NBI will use one or the other SO API. If category starts with e2e, NBI will use {url}}/e2eServiceInstances/v3 SO API - else it will use {{url}}/ecomp/mso/infra/serviceInstances/v4 SO API.</p>
+</div>
+<div class="paragraph">
<p>Specific business errors for current operation will be encapsulated in</p>
</div>
<div class="paragraph">
@@ -589,7 +1582,7 @@ POST should be used without specifying the id and the href, the Service Order Ma
</div>
</div>
<div class="sect4">
-<h5 id="_parameters">Parameters</h5>
+<h5 id="_parameters_8">Parameters</h5>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 22.2222%;">
@@ -614,7 +1607,7 @@ POST should be used without specifying the id and the href, the Service Order Ma
</table>
</div>
<div class="sect4">
-<h5 id="_responses">Responses</h5>
+<h5 id="_responses_8">Responses</h5>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 10%;">
@@ -632,7 +1625,7 @@ POST should be used without specifying the id and the href, the Service Order Ma
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>201</strong></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">Success</p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_createserviceorder">CreateServiceOrder</a></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_serviceorder">ServiceOrder</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>400</strong></p></td>
@@ -707,6 +1700,26 @@ POST should be used without specifying the id and the href, the Service Order Ma
</tbody>
</table>
</div>
+<div class="sect4">
+<h5 id="_consumes_5">Consumes</h5>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json;charset=utf-8</code></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_produces_4">Produces</h5>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json;charset=utf-8</code></p>
+</li>
+</ul>
+</div>
+</div>
</div>
<div class="sect3">
<h4 id="_serviceorderfind">List service orders</h4>
@@ -716,7 +1729,7 @@ POST should be used without specifying the id and the href, the Service Order Ma
</div>
</div>
<div class="sect4">
-<h5 id="_description_2">Description</h5>
+<h5 id="_description_9">Description</h5>
<div class="paragraph">
<p>Retrieve and list service order entities according to given criteria.
Only a predefined set of attribute is proposed.
@@ -730,7 +1743,7 @@ Attribute selection could be described in the fields attribute.</p>
</div>
</div>
<div class="sect4">
-<h5 id="_parameters_2">Parameters</h5>
+<h5 id="_parameters_9">Parameters</h5>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 11.1111%;">
@@ -807,7 +1820,7 @@ Attribute selection could be described in the fields attribute.</p>
</table>
</div>
<div class="sect4">
-<h5 id="_responses_2">Responses</h5>
+<h5 id="_responses_9">Responses</h5>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 10%;">
@@ -895,6 +1908,16 @@ Attribute selection could be described in the fields attribute.</p>
</tbody>
</table>
</div>
+<div class="sect4">
+<h5 id="_produces_5">Produces</h5>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json;charset=utf-8</code></p>
+</li>
+</ul>
+</div>
+</div>
</div>
<div class="sect3">
<h4 id="_serviceorderget">Retrieve a service order</h4>
@@ -904,7 +1927,7 @@ Attribute selection could be described in the fields attribute.</p>
</div>
</div>
<div class="sect4">
-<h5 id="_description_3">Description</h5>
+<h5 id="_description_10">Description</h5>
<div class="paragraph">
<p>This operation retrieves a service order entity.
Attribute selection is enabled for all first level attributes.</p>
@@ -917,7 +1940,7 @@ Attribute selection is enabled for all first level attributes.</p>
</div>
</div>
<div class="sect4">
-<h5 id="_parameters_3">Parameters</h5>
+<h5 id="_parameters_10">Parameters</h5>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 11.1111%;">
@@ -952,7 +1975,7 @@ Attribute selection is enabled for all first level attributes.</p>
</table>
</div>
<div class="sect4">
-<h5 id="_responses_3">Responses</h5>
+<h5 id="_responses_10">Responses</h5>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 10%;">
@@ -1037,6 +2060,16 @@ Attribute selection is enabled for all first level attributes.</p>
</tbody>
</table>
</div>
+<div class="sect4">
+<h5 id="_produces_6">Produces</h5>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json;charset=utf-8</code></p>
+</li>
+</ul>
+</div>
+</div>
</div>
</div>
</div>
@@ -1055,6 +2088,42 @@ modify is not managed in Beijing release</p>
</div>
</div>
<div class="sect2">
+<h3 id="_createhub">CreateHub</h3>
+<div class="paragraph">
+<p>This structure is used as a request for POST Hub operation</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 61.1111%;">
+<col style="width: 22.2223%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>callback</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Address where notification must be send</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>query</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">The query must have an eventType=notificationName information.
+Optionally a ? could be added to reduce hub.
+query”:”eventType = ServiceOrderStateChangeNotification”&amp;serviceOrder.state=COMPLETED</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
<h3 id="_createserviceorder">CreateServiceOrder</h3>
<div class="paragraph">
<p>This structure is used in the operation POST for a serviceOrder request.
@@ -1279,6 +2348,12 @@ Attribute description is not accurate and should be find in the serviceOrderItem
</table>
</div>
<div class="sect2">
+<h3 id="_eventtype">EventType</h3>
+<div class="paragraph">
+<p><em>Type</em> : enum (ServiceOrderCreationNotification, ServiceOrderStateChangeNotification, ServiceOrderItemStateChangeNotification)</p>
+</div>
+</div>
+<div class="sect2">
<h3 id="_hub">Hub</h3>
<div class="paragraph">
<p>An HUB resource is used by client side to subscribe to notification.
@@ -1286,12 +2361,14 @@ Not managed in the Beijing release.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
-<col style="width: 42.8571%;">
-<col style="width: 57.1429%;">
+<col style="width: 16.6666%;">
+<col style="width: 61.1111%;">
+<col style="width: 22.2223%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Description</th>
<th class="tableblock halign-left valign-middle">Schema</th>
</tr>
</thead>
@@ -1299,22 +2376,34 @@ Not managed in the Beijing release.</p>
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>callback</strong><br>
<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Address where notification must be send</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>id</strong><br>
<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Hub Id</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>query</strong><br>
-<em>optional</em></p></td>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
+<h3 id="_notification">Notification</h3>
+<div class="paragraph">
+<p>Used to describe notification for this API</p>
+</div>
+<div class="paragraph">
+<p><em>Type</em> : object</p>
+</div>
+</div>
+<div class="sect2">
<h3 id="_orderitemrelationship">OrderItemRelationship</h3>
<div class="paragraph">
<p>Linked order item to the one containing this attribute.
@@ -1350,6 +2439,58 @@ nbi component used this relationship to sort request to ONAP.</p>
</table>
</div>
<div class="sect2">
+<h3 id="_ordermessage">OrderMessage</h3>
+<div class="paragraph">
+<p>An optional array of messages associated with the Order</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 61.1111%;">
+<col style="width: 22.2223%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>code</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">A code associated to this message</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>correctionRequired</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Indicator that an action is required to allow service order fullfilment to follow up</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>field</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Service Order attribute related to this error message</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>messageInformation</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Message related to this order</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>severity</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_severitymessage">SeverityMessage</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
<h3 id="_orderrelationship">OrderRelationship</h3>
<div class="paragraph">
<p>Linked order to the one containing this attribute.
@@ -1682,6 +2823,12 @@ Not managed in Beijing release.</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">&lt; <a href="#_serviceorderitem">ServiceOrderItem</a> &gt; array</p></td>
</tr>
<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>orderMessage</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">&lt; <a href="#_ordermessage">OrderMessage</a> &gt; array</p></td>
+</tr>
+<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>orderRelationship</strong><br>
<em>optional</em></p></td>
<td class="tableblock halign-left valign-middle"></td>
@@ -1727,6 +2874,52 @@ Not managed in Beijing release.</p></td>
</table>
</div>
<div class="sect2">
+<h3 id="_serviceordercreationnotification">ServiceOrderCreationNotification</h3>
+<div class="paragraph">
+<p>Notification structure for a service order creation notification</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 61.1111%;">
+<col style="width: 22.2223%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>event</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_serviceordersummary">ServiceOrderSummary</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>eventDate</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string (date-time)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>eventId</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>eventType</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Default</strong> : <code>"ServiceOrderCreationNotification"</code></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
<h3 id="_serviceorderitem">ServiceOrderItem</h3>
<div class="paragraph">
<p>An identified part of the order. A service order is decomposed into one or more order items.</p>
@@ -1777,12 +2970,113 @@ not used in Beijing relase</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
</tr>
<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>orderItemMessage</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">&lt; <a href="#_ordermessage">OrderMessage</a> &gt; array</p></td>
+</tr>
+<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>orderItemRelationship</strong><br>
<em>optional</em></p></td>
<td class="tableblock halign-left valign-middle"></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">&lt; <a href="#_orderitemrelationship">OrderItemRelationship</a> &gt; array</p></td>
</tr>
<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>percentProgress</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Progress of the delivery in percentage.</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>service</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_service">Service</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>state</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_statetype">StateType</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_serviceorderitemstatechangenotification">ServiceOrderItemStateChangeNotification</h3>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 61.1111%;">
+<col style="width: 22.2223%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>event</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_serviceordersummarywithitem">ServiceOrderSummaryWithItem</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>eventDate</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string (date-time)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>eventId</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>eventType</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Default</strong> : <code>"ServiceOrderStateChangeNotification"</code></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_serviceorderitemsummary">ServiceOrderItemSummary</h3>
+<div class="paragraph">
+<p>Service Order item summary to be used for notification</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 61.1111%;">
+<col style="width: 22.2223%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>action</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_actiontype">ActionType</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>id</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Identifier of the line item (generally it is a sequence number 01, 02, 03, …)</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>service</strong><br>
<em>required</em></p></td>
<td class="tableblock halign-left valign-middle"></td>
@@ -1798,6 +3092,174 @@ not used in Beijing relase</p></td>
</table>
</div>
<div class="sect2">
+<h3 id="_serviceorderstatechangenotification">ServiceOrderStateChangeNotification</h3>
+<div class="paragraph">
+<p>Service order state change notification description</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 61.1111%;">
+<col style="width: 22.2223%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>event</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_serviceordersummary">ServiceOrderSummary</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>eventDate</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string (date-time)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>eventId</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>eventType</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Default</strong> : <code>"ServiceOrderStateChangeNotification"</code></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_serviceordersummary">ServiceOrderSummary</h3>
+<div class="paragraph">
+<p>This structure is used to provide a subset of serviceOrder attributes to be provided in particular for notification messages</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 61.1111%;">
+<col style="width: 22.2223%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>completionDateTime</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Date when the order was completed</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string (date-time)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>externalId</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">ID given by the consumer and only understandable by him (to facilitate his searches)</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>href</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Hyperlink to access the order</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>id</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">ID created on repository side</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>orderDate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string (date-time)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>state</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_statetype">StateType</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_serviceordersummarywithitem">ServiceOrderSummaryWithItem</h3>
+<div class="paragraph">
+<p>Service order item summary with item description</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 61.1111%;">
+<col style="width: 22.2223%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>completionDateTime</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Date when the order was completed</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string (date-time)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>externalId</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">ID given by the consumer and only understandable by him (to facilitate his searches)</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>href</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Hyperlink to access the order</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>id</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">ID created on repository side</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>orderDate</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string (date-time)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>orderItem</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">&lt; <a href="#_serviceorderitemsummary">ServiceOrderItemSummary</a> &gt; array</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>state</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_statetype">StateType</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
<h3 id="_serviceref">ServiceRef</h3>
<div class="paragraph">
<p>Service references</p>
@@ -1937,6 +3399,12 @@ Not used in Beijing release</p></td>
</table>
</div>
<div class="sect2">
+<h3 id="_severitymessage">SeverityMessage</h3>
+<div class="paragraph">
+<p><em>Type</em> : enum (information, error)</p>
+</div>
+</div>
+<div class="sect2">
<h3 id="_statetype">StateType</h3>
<div class="paragraph">
<p>List of possible state for the order and the orderItem.</p>
@@ -2028,7 +3496,7 @@ This attribute must be used in Beijing Release to provide characteristic value.<
</div>
<div id="footer">
<div id="footer-text">
-Last updated 2018-03-22 09:37:52 UTC
+Last updated 2018-09-12 13:42:33 +00:00
</div>
</div>
</body>
diff --git a/docs/offeredapis/serviceOrder/markDown.md b/docs/offeredapis/serviceOrder/markDown.md
index b47779b..0c11b20 100644
--- a/docs/offeredapis/serviceOrder/markDown.md
+++ b/docs/offeredapis/serviceOrder/markDown.md
@@ -1,7 +1,3 @@
-# This work is licensed under a Creative Commons Attribution 4.0 International License.
-# http://creativecommons.org/licenses/by/4.0
-# Copyright 2018 Orange
-
# API ServiceOrder
@@ -10,43 +6,319 @@
### Api URL
-[Swagger UI](https://api-designer.sso.infra.ftgroup/swagger-ui/?url=https://api-designer.sso.infra.ftgroup/api/1.0/apis/kl1kgvz1zR/swagger.json)
+[Swagger UI](https://api-designer.sso.infra.ftgroup/swagger-ui/?url=https://api-designer.sso.infra.ftgroup/api/1.0/apis/Ve1zj3V1gj/swagger.json)
-[plant UML UI](https://plantuml.rd.francetelecom.fr/proxy?fmt=svg&src=https://api-designer.sso.infra.ftgroup/api/1.0/apis/kl1kgvz1zR/plantuml&noCache=934804.0)
+[plant UML UI](https://plantuml.rd.francetelecom.fr/proxy?fmt=svg&src=https://api-designer.sso.infra.ftgroup/api/1.0/apis/Ve1zj3V1gj/plantuml&noCache=366455.0)
-serviceOrder API designed for ONAP Beijing Release.
+serviceOrder API designed for ONAP.
This API is build from TMF open API18.0 (applying TMF Guideline 3.0);
Only operations GET (by id and list) and POST are available.
### Version information
-*Version* : 1.0.0_inProgress
+*Version* : 3.0.0_inProgress
### URI scheme
*Host* : serverRoot
-*BasePath* : /nbi/api/v1
+*BasePath* : /nbi/api/v3
*Schemes* : HTTPS
### Tags
+* Hub
+* Notification
* ServiceOrder : A Service Order is a type of order which can be used to describe a group of operations on service – one service order item per service. An action at the level of the service order item describe the operation to be done on a service (add, terminate for example). The service order is triggered from the BSS system in charge of the product order management to ONAP that will manage the service fulfillment.
-### Consumes
+### Produces
* `application/json;charset=utf-8`
-### Produces
+<a name="paths"></a>
+## Resources
+
+<a name="hub_resource"></a>
+### Hub
+
+<a name="hubcreate"></a>
+#### Create Hub
+```
+POST /hub
+```
+
+
+##### Description
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+##### Parameters
+
+|Type|Name|Schema|
+|---|---|---|
+|**Body**|**Hub** <br>*required*|[CreateHub](#createhub)|
+
+
+##### Responses
+
+|HTTP Code|Description|Schema|
+|---|---|---|
+|**201**|Success <br>**Headers** : <br>`location` (string)|file|
+|**400**|Bad Request<br><br>List of supported error codes:<br>- 20: Invalid URL parameter value<br>- 21: Missing body<br>- 22: Invalid body<br>- 23: Missing body field<br>- 24: Invalid body field<br>- 25: Missing header<br>- 26: Invalid header value<br>- 27: Missing query-string parameter<br>- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)|
+|**401**|Unauthorized<br><br>List of supported error codes:<br>- 40: Missing credentials<br>- 41: Invalid credentials<br>- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)|
+|**403**|Forbidden<br><br>List of supported error codes:<br>- 50: Access denied<br>- 51: Forbidden requester<br>- 52: Forbidden user<br>- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)|
+|**404**|Not Found<br><br>List of supported error codes:<br>- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)|
+|**422**|Unprocessable entity<br><br>Functional error|[ErrorRepresentation](#errorrepresentation)|
+|**500**|Internal Server Error<br><br>List of supported error codes:<br>- 1: Internal error|[ErrorRepresentation](#errorrepresentation)|
+|**503**|Service Unavailable<br><br>List of supported error codes:<br>- 5: The service is temporarily unavailable<br>- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)|
+
+
+##### Consumes
* `application/json;charset=utf-8`
-<a name="paths"></a>
-## Resources
+<a name="hubfind"></a>
+#### Retrieve a lits of hub
+```
+GET /hub
+```
+
+
+##### Description
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+##### Parameters
+
+|Type|Name|Schema|
+|---|---|---|
+|**Query**|**eventType** <br>*optional*|enum (ServiceOrderCreationNotification, ServiceOrderStateChangeNotification, ServiceOrderItemStateChangeNotification)|
+|**Query**|**id** <br>*optional*|string|
+
+
+##### Responses
+
+|HTTP Code|Description|Schema|
+|---|---|---|
+|**200**|Success|< [Hub](#hub) > array|
+|**400**|Bad Request<br><br>List of supported error codes:<br>- 20: Invalid URL parameter value<br>- 21: Missing body<br>- 22: Invalid body<br>- 23: Missing body field<br>- 24: Invalid body field<br>- 25: Missing header<br>- 26: Invalid header value<br>- 27: Missing query-string parameter<br>- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)|
+|**401**|Unauthorized<br><br>List of supported error codes:<br>- 40: Missing credentials<br>- 41: Invalid credentials<br>- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)|
+|**403**|Forbidden<br><br>List of supported error codes:<br>- 50: Access denied<br>- 51: Forbidden requester<br>- 52: Forbidden user<br>- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)|
+|**404**|Not Found<br><br>List of supported error codes:<br>- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)|
+|**422**|Unprocessable entity<br><br>Functional error|[ErrorRepresentation](#errorrepresentation)|
+|**500**|Internal Server Error<br><br>List of supported error codes:<br>- 1: Internal error|[ErrorRepresentation](#errorrepresentation)|
+|**503**|Service Unavailable<br><br>List of supported error codes:<br>- 5: The service is temporarily unavailable<br>- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)|
+
+
+##### Produces
+
+* `application/json;charset=utf-8`
+
+
+<a name="hubget"></a>
+#### Retrieve an HUB by id
+```
+GET /hub/{hubId}
+```
+
+
+##### Description
+Retrieve an HUB by id
+
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+##### Parameters
+
+|Type|Name|Schema|
+|---|---|---|
+|**Path**|**hubId** <br>*required*|string|
+
+
+##### Responses
+
+|HTTP Code|Description|Schema|
+|---|---|---|
+|**200**|Success|[Hub](#hub)|
+|**400**|Bad Request<br><br>List of supported error codes:<br>- 20: Invalid URL parameter value<br>- 21: Missing body<br>- 22: Invalid body<br>- 23: Missing body field<br>- 24: Invalid body field<br>- 25: Missing header<br>- 26: Invalid header value<br>- 27: Missing query-string parameter<br>- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)|
+|**401**|Unauthorized<br><br>List of supported error codes:<br>- 40: Missing credentials<br>- 41: Invalid credentials<br>- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)|
+|**403**|Forbidden<br><br>List of supported error codes:<br>- 50: Access denied<br>- 51: Forbidden requester<br>- 52: Forbidden user<br>- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)|
+|**404**|Not Found<br><br>List of supported error codes:<br>- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)|
+|**422**|Unprocessable entity<br><br>Functional error|[ErrorRepresentation](#errorrepresentation)|
+|**500**|Internal Server Error<br><br>List of supported error codes:<br>- 1: Internal error|[ErrorRepresentation](#errorrepresentation)|
+|**503**|Service Unavailable<br><br>List of supported error codes:<br>- 5: The service is temporarily unavailable<br>- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)|
+
+
+##### Produces
+
+* `application/json;charset=utf-8`
+
+
+<a name="hubdelete"></a>
+#### delete hub
+```
+DELETE /hub/{hubId}
+```
+
+
+##### Description
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+##### Parameters
+
+|Type|Name|Schema|
+|---|---|---|
+|**Path**|**hubId** <br>*required*|string|
+
+
+##### Responses
+
+|HTTP Code|Description|Schema|
+|---|---|---|
+|**204**|Success|No Content|
+|**400**|Bad Request<br><br>List of supported error codes:<br>- 20: Invalid URL parameter value<br>- 21: Missing body<br>- 22: Invalid body<br>- 23: Missing body field<br>- 24: Invalid body field<br>- 25: Missing header<br>- 26: Invalid header value<br>- 27: Missing query-string parameter<br>- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)|
+|**401**|Unauthorized<br><br>List of supported error codes:<br>- 40: Missing credentials<br>- 41: Invalid credentials<br>- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)|
+|**403**|Forbidden<br><br>List of supported error codes:<br>- 50: Access denied<br>- 51: Forbidden requester<br>- 52: Forbidden user<br>- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)|
+|**404**|Not Found<br><br>List of supported error codes:<br>- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)|
+|**422**|Unprocessable entity<br><br>Functional error|[ErrorRepresentation](#errorrepresentation)|
+|**500**|Internal Server Error<br><br>List of supported error codes:<br>- 1: Internal error|[ErrorRepresentation](#errorrepresentation)|
+|**503**|Service Unavailable<br><br>List of supported error codes:<br>- 5: The service is temporarily unavailable<br>- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)|
+
+
+<a name="notification_resource"></a>
+### Notification
+
+<a name="notificationserviceordercreationnotification"></a>
+#### Service order creation notification
+```
+POST /notification/serviceOrderCreationNotification
+```
+
+
+##### Description
+Service order creation notification
+
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+##### Parameters
+
+|Type|Name|Schema|
+|---|---|---|
+|**Body**|**serviceOrderCreationNotification** <br>*required*|[ServiceOrderCreationNotification](#serviceordercreationnotification)|
+
+
+##### Responses
+
+|HTTP Code|Description|Schema|
+|---|---|---|
+|**204**|Success|No Content|
+|**400**|Bad Request<br><br>List of supported error codes:<br>- 20: Invalid URL parameter value<br>- 21: Missing body<br>- 22: Invalid body<br>- 23: Missing body field<br>- 24: Invalid body field<br>- 25: Missing header<br>- 26: Invalid header value<br>- 27: Missing query-string parameter<br>- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)|
+|**401**|Unauthorized<br><br>List of supported error codes:<br>- 40: Missing credentials<br>- 41: Invalid credentials<br>- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)|
+|**403**|Forbidden<br><br>List of supported error codes:<br>- 50: Access denied<br>- 51: Forbidden requester<br>- 52: Forbidden user<br>- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)|
+|**404**|Not Found<br><br>List of supported error codes:<br>- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)|
+|**422**|Unprocessable entity<br><br>Functional error|[ErrorRepresentation](#errorrepresentation)|
+|**500**|Internal Server Error<br><br>List of supported error codes:<br>- 1: Internal error|[ErrorRepresentation](#errorrepresentation)|
+|**503**|Service Unavailable<br><br>List of supported error codes:<br>- 5: The service is temporarily unavailable<br>- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)|
+
+
+##### Consumes
+
+* `application/json;charset=utf-8`
+
+
+<a name="notificationserviceorderitemstatechangenotification"></a>
+#### ServiceOrder Item State Change Notification description
+```
+POST /notification/serviceOrderItemStateChangeNotification
+```
+
+
+##### Description
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+##### Parameters
+
+|Type|Name|Schema|
+|---|---|---|
+|**Body**|**serviceOrderItemStateChangeNotification** <br>*required*|[ServiceOrderItemStateChangeNotification](#serviceorderitemstatechangenotification)|
+
+
+##### Responses
+
+|HTTP Code|Description|Schema|
+|---|---|---|
+|**204**|Success|No Content|
+|**400**|Bad Request<br><br>List of supported error codes:<br>- 20: Invalid URL parameter value<br>- 21: Missing body<br>- 22: Invalid body<br>- 23: Missing body field<br>- 24: Invalid body field<br>- 25: Missing header<br>- 26: Invalid header value<br>- 27: Missing query-string parameter<br>- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)|
+|**401**|Unauthorized<br><br>List of supported error codes:<br>- 40: Missing credentials<br>- 41: Invalid credentials<br>- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)|
+|**403**|Forbidden<br><br>List of supported error codes:<br>- 50: Access denied<br>- 51: Forbidden requester<br>- 52: Forbidden user<br>- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)|
+|**404**|Not Found<br><br>List of supported error codes:<br>- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)|
+|**422**|Unprocessable entity<br><br>Functional error|[ErrorRepresentation](#errorrepresentation)|
+|**500**|Internal Server Error<br><br>List of supported error codes:<br>- 1: Internal error|[ErrorRepresentation](#errorrepresentation)|
+|**503**|Service Unavailable<br><br>List of supported error codes:<br>- 5: The service is temporarily unavailable<br>- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)|
+
+
+##### Consumes
+
+* `application/json;charset=utf-8`
+
+
+<a name="notificationserviceorderstatechangenotification"></a>
+#### Service order state change notification description
+```
+POST /notification/serviceOrderStateChangeNotification
+```
+
+
+##### Description
+Specific business errors for current operation will be encapsulated in
+
+HTTP Response 422 Unprocessable entity
+
+
+##### Parameters
+
+|Type|Name|Schema|
+|---|---|---|
+|**Body**|**serviceOrderstateChangeNotification** <br>*required*|[ServiceOrderStateChangeNotification](#serviceorderstatechangenotification)|
+
+
+##### Responses
+
+|HTTP Code|Description|Schema|
+|---|---|---|
+|**204**|Success|No Content|
+|**400**|Bad Request<br><br>List of supported error codes:<br>- 20: Invalid URL parameter value<br>- 21: Missing body<br>- 22: Invalid body<br>- 23: Missing body field<br>- 24: Invalid body field<br>- 25: Missing header<br>- 26: Invalid header value<br>- 27: Missing query-string parameter<br>- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)|
+|**401**|Unauthorized<br><br>List of supported error codes:<br>- 40: Missing credentials<br>- 41: Invalid credentials<br>- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)|
+|**403**|Forbidden<br><br>List of supported error codes:<br>- 50: Access denied<br>- 51: Forbidden requester<br>- 52: Forbidden user<br>- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)|
+|**404**|Not Found<br><br>List of supported error codes:<br>- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)|
+|**422**|Unprocessable entity<br><br>Functional error|[ErrorRepresentation](#errorrepresentation)|
+|**500**|Internal Server Error<br><br>List of supported error codes:<br>- 1: Internal error|[ErrorRepresentation](#errorrepresentation)|
+|**503**|Service Unavailable<br><br>List of supported error codes:<br>- 5: The service is temporarily unavailable<br>- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)|
+
+
+##### Consumes
+
+* `application/json;charset=utf-8`
+
<a name="serviceorder_resource"></a>
### ServiceOrder
@@ -65,6 +337,11 @@ This operation creates a service order entity.
The TMF Open API specification document provides the list of mandatory and non mandatory attributes when creating a ServiceOrder, including any possible rule conditions and applicable default values.
POST should be used without specifying the id and the href, the Service Order Management system is in charge of generating the id + href for the ServiceOrder.
+In Beijing Release, NBI will use only POST {{url}}/ecomp/mso/infra/serviceInstances/v4 SO API. This mean that only the 'service-instance' level will be created in AAI. Additional resource like VNF and/OR VF are not created.
+
+In Casablanca release, NBI has been improved to also be able to use POST {{url}}/e2eServiceInstances/v3 SO API. This API is able to instantiate in ONAP E2E service; This is useful for CCVPN and VoLTE UC.
+Depending on the service category defined in SDC, NBI will use one or the other SO API. If category starts with e2e, NBI will use {url}}/e2eServiceInstances/v3 SO API - else it will use {{url}}/ecomp/mso/infra/serviceInstances/v4 SO API.
+
Specific business errors for current operation will be encapsulated in
HTTP Response 422 Unprocessable entity
@@ -95,7 +372,7 @@ HTTP Response 422 Unprocessable entity
|HTTP Code|Description|Schema|
|---|---|---|
-|**201**|Success|[CreateServiceOrder](#createserviceorder)|
+|**201**|Success|[ServiceOrder](#serviceorder)|
|**400**|Bad Request<br><br>List of supported error codes:<br>- 20: Invalid URL parameter value<br>- 21: Missing body<br>- 22: Invalid body<br>- 23: Missing body field<br>- 24: Invalid body field<br>- 25: Missing header<br>- 26: Invalid header value<br>- 27: Missing query-string parameter<br>- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)|
|**401**|Unauthorized<br><br>List of supported error codes:<br>- 40: Missing credentials<br>- 41: Invalid credentials<br>- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)|
|**403**|Forbidden<br><br>List of supported error codes:<br>- 50: Access denied<br>- 51: Forbidden requester<br>- 52: Forbidden user<br>- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)|
@@ -105,6 +382,16 @@ HTTP Response 422 Unprocessable entity
|**503**|Service Unavailable<br><br>List of supported error codes:<br>- 5: The service is temporarily unavailable<br>- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)|
+##### Consumes
+
+* `application/json;charset=utf-8`
+
+
+##### Produces
+
+* `application/json;charset=utf-8`
+
+
<a name="serviceorderfind"></a>
#### List service orders
```
@@ -150,6 +437,11 @@ HTTP Response 422 Unprocessable entity
|**503**|Service Unavailable<br><br>List of supported error codes:<br>- 5: The service is temporarily unavailable<br>- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)|
+##### Produces
+
+* `application/json;charset=utf-8`
+
+
<a name="serviceorderget"></a>
#### Retrieve a service order
```
@@ -188,6 +480,11 @@ HTTP Response 422 Unprocessable entity
|**503**|Service Unavailable<br><br>List of supported error codes:<br>- 5: The service is temporarily unavailable<br>- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)|
+##### Produces
+
+* `application/json;charset=utf-8`
+
+
<a name="definitions"></a>
## Definitions
@@ -199,6 +496,17 @@ modify is not managed in Beijing release
*Type* : enum (add, modify, delete, noChange)
+<a name="createhub"></a>
+### CreateHub
+This structure is used as a request for POST Hub operation
+
+
+|Name|Description|Schema|
+|---|---|---|
+|**callback** <br>*required*|Address where notification must be send|string|
+|**query** <br>*required*|The query must have an eventType=notificationName information.<br>Optionally a ? could be added to reduce hub.<br>query”:”eventType = ServiceOrderStateChangeNotification”&serviceOrder.state=COMPLETED|string|
+
+
<a name="createserviceorder"></a>
### CreateServiceOrder
This structure is used in the operation POST for a serviceOrder request.
@@ -254,17 +562,29 @@ Representation of an error.
|**status** <br>*optional*|http error code extension like 400-2|string|
+<a name="eventtype"></a>
+### EventType
+*Type* : enum (ServiceOrderCreationNotification, ServiceOrderStateChangeNotification, ServiceOrderItemStateChangeNotification)
+
+
<a name="hub"></a>
### Hub
An HUB resource is used by client side to subscribe to notification.
Not managed in the Beijing release.
-|Name|Schema|
-|---|---|
-|**callback** <br>*required*|string|
-|**id** <br>*optional*|string|
-|**query** <br>*optional*|string|
+|Name|Description|Schema|
+|---|---|---|
+|**callback** <br>*required*|Address where notification must be send|string|
+|**id** <br>*optional*|Hub Id|string|
+|**query** <br>*required*||string|
+
+
+<a name="notification"></a>
+### Notification
+Used to describe notification for this API
+
+*Type* : object
<a name="orderitemrelationship"></a>
@@ -279,6 +599,20 @@ nbi component used this relationship to sort request to ONAP.
|**type** <br>*required*||[RelationshipType](#relationshiptype)|
+<a name="ordermessage"></a>
+### OrderMessage
+An optional array of messages associated with the Order
+
+
+|Name|Description|Schema|
+|---|---|---|
+|**code** <br>*optional*|A code associated to this message|string|
+|**correctionRequired** <br>*required*|Indicator that an action is required to allow service order fullfilment to follow up|boolean|
+|**field** <br>*optional*|Service Order attribute related to this error message|string|
+|**messageInformation** <br>*optional*|Message related to this order|string|
+|**severity** <br>*required*||[SeverityMessage](#severitymessage)|
+
+
<a name="orderrelationship"></a>
### OrderRelationship
Linked order to the one containing this attribute.
@@ -369,6 +703,7 @@ A Service Order is a type of order which can be used to place an order between a
|**id** <br>*required*|ID created on repository side|string|
|**orderDate** <br>*optional*||string (date-time)|
|**orderItem** <br>*optional*||< [ServiceOrderItem](#serviceorderitem) > array|
+|**orderMessage** <br>*optional*||< [OrderMessage](#ordermessage) > array|
|**orderRelationship** <br>*optional*||< [OrderRelationship](#orderrelationship) > array|
|**priority** <br>*optional*|A way that can be used by consumers to prioritize orders in Service Order Management system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)|string|
|**relatedParty** <br>*optional*||< [RelatedParty](#relatedparty) > array|
@@ -378,6 +713,19 @@ A Service Order is a type of order which can be used to place an order between a
|**state** <br>*optional*||[StateType](#statetype)|
+<a name="serviceordercreationnotification"></a>
+### ServiceOrderCreationNotification
+Notification structure for a service order creation notification
+
+
+|Name|Description|Schema|
+|---|---|---|
+|**event** <br>*required*||[ServiceOrderSummary](#serviceordersummary)|
+|**eventDate** <br>*required*||string (date-time)|
+|**eventId** <br>*required*||string|
+|**eventType** <br>*required*|**Default** : `"ServiceOrderCreationNotification"`|string|
+
+
<a name="serviceorderitem"></a>
### ServiceOrderItem
An identified part of the order. A service order is decomposed into one or more order items.
@@ -390,11 +738,81 @@ An identified part of the order. A service order is decomposed into one or more
|**@type** <br>*optional*|Used to extend the order item.<br>not used in Beijing relase|string|
|**action** <br>*optional*||[ActionType](#actiontype)|
|**id** <br>*required*|Identifier of the line item (generally it is a sequence number 01, 02, 03, …)|string|
+|**orderItemMessage** <br>*optional*||< [OrderMessage](#ordermessage) > array|
|**orderItemRelationship** <br>*optional*||< [OrderItemRelationship](#orderitemrelationship) > array|
+|**percentProgress** <br>*optional*|Progress of the delivery in percentage.|string|
|**service** <br>*required*||[Service](#service)|
|**state** <br>*optional*||[StateType](#statetype)|
+<a name="serviceorderitemstatechangenotification"></a>
+### ServiceOrderItemStateChangeNotification
+
+|Name|Description|Schema|
+|---|---|---|
+|**event** <br>*required*||[ServiceOrderSummaryWithItem](#serviceordersummarywithitem)|
+|**eventDate** <br>*required*||string (date-time)|
+|**eventId** <br>*required*||string|
+|**eventType** <br>*required*|**Default** : `"ServiceOrderStateChangeNotification"`|string|
+
+
+<a name="serviceorderitemsummary"></a>
+### ServiceOrderItemSummary
+Service Order item summary to be used for notification
+
+
+|Name|Description|Schema|
+|---|---|---|
+|**action** <br>*optional*||[ActionType](#actiontype)|
+|**id** <br>*required*|Identifier of the line item (generally it is a sequence number 01, 02, 03, …)|string|
+|**service** <br>*required*||[Service](#service)|
+|**state** <br>*optional*||[StateType](#statetype)|
+
+
+<a name="serviceorderstatechangenotification"></a>
+### ServiceOrderStateChangeNotification
+Service order state change notification description
+
+
+|Name|Description|Schema|
+|---|---|---|
+|**event** <br>*required*||[ServiceOrderSummary](#serviceordersummary)|
+|**eventDate** <br>*required*||string (date-time)|
+|**eventId** <br>*required*||string|
+|**eventType** <br>*required*|**Default** : `"ServiceOrderStateChangeNotification"`|string|
+
+
+<a name="serviceordersummary"></a>
+### ServiceOrderSummary
+This structure is used to provide a subset of serviceOrder attributes to be provided in particular for notification messages
+
+
+|Name|Description|Schema|
+|---|---|---|
+|**completionDateTime** <br>*optional*|Date when the order was completed|string (date-time)|
+|**externalId** <br>*optional*|ID given by the consumer and only understandable by him (to facilitate his searches)|string|
+|**href** <br>*optional*|Hyperlink to access the order|string|
+|**id** <br>*required*|ID created on repository side|string|
+|**orderDate** <br>*optional*||string (date-time)|
+|**state** <br>*optional*||[StateType](#statetype)|
+
+
+<a name="serviceordersummarywithitem"></a>
+### ServiceOrderSummaryWithItem
+Service order item summary with item description
+
+
+|Name|Description|Schema|
+|---|---|---|
+|**completionDateTime** <br>*optional*|Date when the order was completed|string (date-time)|
+|**externalId** <br>*optional*|ID given by the consumer and only understandable by him (to facilitate his searches)|string|
+|**href** <br>*optional*|Hyperlink to access the order|string|
+|**id** <br>*required*|ID created on repository side|string|
+|**orderDate** <br>*optional*||string (date-time)|
+|**orderItem** <br>*optional*||< [ServiceOrderItemSummary](#serviceorderitemsummary) > array|
+|**state** <br>*optional*||[StateType](#statetype)|
+
+
<a name="serviceref"></a>
### ServiceRef
Service references
@@ -435,6 +853,11 @@ The service specification (these attributes are fetched from the catalogue).
|**version** <br>*optional*|Version of the service Specification<br>Not used in Beijing release|string|
+<a name="severitymessage"></a>
+### SeverityMessage
+*Type* : enum (information, error)
+
+
<a name="statetype"></a>
### StateType
List of possible state for the order and the orderItem.