diff options
Diffstat (limited to 'docs/offeredapis/api_serviceOrder')
-rw-r--r-- | docs/offeredapis/api_serviceOrder/api.plantuml | 205 | ||||
-rw-r--r-- | docs/offeredapis/api_serviceOrder/model.xsd | 932 | ||||
-rw-r--r-- | docs/offeredapis/api_serviceOrder/swagger.json | 1110 | ||||
-rw-r--r-- | docs/offeredapis/api_serviceOrder/swagger.yaml | 784 |
4 files changed, 3031 insertions, 0 deletions
diff --git a/docs/offeredapis/api_serviceOrder/api.plantuml b/docs/offeredapis/api_serviceOrder/api.plantuml new file mode 100644 index 0000000..c13c0c5 --- /dev/null +++ b/docs/offeredapis/api_serviceOrder/api.plantuml @@ -0,0 +1,205 @@ +@startuml + +enum ActionType { + add + modify + delete + noChange +} +enum StateType { + acknowledged + rejected + pending + held + inProgress + cancelled + completed + failed + partial +} +enum RelationshipType { + reliesOn +} +enum EventType { + ServiceOrderCreationNotification + ServiceOrderStateChangeNotification + ServiceOrderItemStateChangeNotification +} +enum SeverityMessage { + information + error +} + +class Error { + code:int + reason:string + message:string + status:string + referenceError:string +} + +class ServiceRelationship + ServiceRelationship --> "1-1" RelationshipType : type + ServiceRelationship --> "1-1" Service : service + +class ServiceRef { + id:string + href:string +} + +class ServiceCharacteristic { + name:string + valueType:string +} + ServiceCharacteristic --> "0-1" Value : value + +class RelatedParty { + id:string + href:string + role:string + name:string + @referredType:string +} + +class ServiceSpecificationRef { + id:string + href:string + name:string + version:string + @type:string + @schemaLocation:string + @baseType:string +} + ServiceSpecificationRef --> "0-1" TargetServiceSchema : targetServiceSchema + +class Service { + id:string + href:string + name:string + serviceState:string + @type:string + @schemaLocation:string +} + Service --> "0-*" ServiceCharacteristic : serviceCharacteristic + Service --> "0-*" ServiceRelationship : serviceRelationship + Service --> "0-*" RelatedParty : relatedParty + Service --> "0-1" ServiceSpecificationRef : serviceSpecification + +class OrderItemRelationship { + id:string +} + OrderItemRelationship --> "1-1" RelationshipType : type + +class ServiceOrderItem { + id:string + percentProgress:string + @type:string + @schemaLocation:string + @baseType:string +} + ServiceOrderItem --> "0-1" ActionType : action + ServiceOrderItem --> "0-1" StateType : state + ServiceOrderItem --> "0-*" OrderItemRelationship : orderItemRelationship + ServiceOrderItem --> "1-1" Service : service + ServiceOrderItem --> "0-*" OrderMessage : orderItemMessage + +class ServiceOrder { + id:string + href:string + externalId:string + priority:string + description:string + category:string + orderDate:dateTime + completionDateTime:dateTime + requestedStartDate:dateTime + requestedCompletionDate:dateTime + expectedCompletionDate:dateTime + startDate:dateTime + @baseType:string + @type:string + @schemaLocation:string +} + ServiceOrder --> "0-1" StateType : state + ServiceOrder --> "0-*" RelatedParty : relatedParty + ServiceOrder --> "0-*" OrderRelationship : orderRelationship + ServiceOrder --> "0-*" ServiceOrderItem : orderItem + ServiceOrder --> "0-*" OrderMessage : orderMessage + +class OrderRelationship { + type:string + id:string + href:string + @referredType:string +} + +class TargetServiceSchema { + @type:string + @schemaLocation:string +} + +class Value { + serviceCharacteristicValue:string +} + +class CreateServiceOrderItem { + id:string +} + CreateServiceOrderItem --> "0-1" ActionType : action + CreateServiceOrderItem --> "0-*" OrderItemRelationship : orderItemRelationship + CreateServiceOrderItem --> "1-1" Service : service + +class CreateServiceOrder { + externalId:string + priority:string + description:string + category:string + requestedStartDate:dateTime + requestedCompletionDate:dateTime +} + CreateServiceOrder --> "0-*" RelatedParty : relatedParty + CreateServiceOrder --> "0-*" OrderRelationship : orderRelationship + CreateServiceOrder --> "0-*" CreateServiceOrderItem : orderItem + +class ServiceOrderSummary { + id:string + href:string + externalId:string + orderDate:dateTime + completionDateTime:dateTime +} + ServiceOrderSummary --> "0-1" StateType : state + +class Notification { + eventId:string + eventDate:dateTime +} + Notification --> "1-1" EventType : eventType + Notification --> "1-1" ServiceOrderSummaryWithItem : 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 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/api_serviceOrder/model.xsd b/docs/offeredapis/api_serviceOrder/model.xsd new file mode 100644 index 0000000..6f8f207 --- /dev/null +++ b/docs/offeredapis/api_serviceOrder/model.xsd @@ -0,0 +1,932 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xmime="http://www.w3.org/2005/05/xmlmime" + xmlns="http://orange.com/ONAPNBI/api/serviceOrder/v4/model" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + attributeFormDefault="unqualified" + elementFormDefault="qualified" + targetNamespace="http://orange.com/ONAPNBI/api/serviceOrder/v4/model"> + <xs:annotation id="signature"> + <xs:appinfo>API Designer</xs:appinfo> + <xs:documentation>Model: serviceOrder + Version: 4.0.0_inProgress + Owner: ONAPNBI + Generated on: 2019-03-12T16:45:40.663Z + Generated by: Orange API Designer v2, model-v1</xs:documentation> + </xs:annotation> + <xs:simpleType name="ActionType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="add"/> + <xs:enumeration value="modify"/> + <xs:enumeration value="delete"/> + <xs:enumeration value="noChange"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="StateType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="acknowledged"/> + <xs:enumeration value="rejected"/> + <xs:enumeration value="pending"/> + <xs:enumeration value="held"/> + <xs:enumeration value="inProgress"/> + <xs:enumeration value="cancelled"/> + <xs:enumeration value="completed"/> + <xs:enumeration value="failed"/> + <xs:enumeration value="partial"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="RelationshipType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="reliesOn"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="EventType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="ServiceOrderCreationNotification"/> + <xs:enumeration value="ServiceOrderStateChangeNotification"/> + <xs:enumeration value="ServiceOrderItemStateChangeNotification"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="SeverityMessage"> + <xs:restriction base="xs:string"> + <xs:enumeration value="information"/> + <xs:enumeration value="error"/> + </xs:restriction> + </xs:simpleType> + <xs:element name="Error" type="Error"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + <xs:complexType name="Error"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="code" type="xs:int" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Application related code (as defined in the API or from a common list)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="reason" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Text that explains the reason for error. This can be shown to a client user.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="message" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Text that provide more details and corrective actions related to the error. This can be shown to a client user</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="status" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">http error code extension like 400-2</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="referenceError" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">url pointing to documentation describing the error</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="ServiceRelationship" type="ServiceRelationship"> + <xs:annotation> + <xs:documentation source="public">Linked Services to the one instantiate +nbi component used this relationship to sort request to ONAP.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="ServiceRelationship"> + <xs:annotation> + <xs:documentation source="public">Linked Services to the one instantiate +nbi component used this relationship to sort request to ONAP.</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="type" type="RelationshipType" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Relationship type. It can be : “reliesOn” if the Service needs another already owned Service to rely on (e.g. an option on an already owned mobile access Service) or “targets” or “isTargeted” (depending on the way of expressing the link) for any other kind of links that may be useful. +Only reliesOn is managed in Beijing release.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="service" type="Service" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Service reference - id of the service targeted. +not managed in Beijing release.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="ServiceRef" type="ServiceRef"> + <xs:annotation> + <xs:documentation source="public">Service references</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="ServiceRef"> + <xs:annotation> + <xs:documentation source="public">Service references</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="id" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Unique identifier of the service</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="href" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Reference of the service</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="ServiceCharacteristic" type="ServiceCharacteristic"> + <xs:annotation> + <xs:documentation source="public">ServiceCharacteristic</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="ServiceCharacteristic"> + <xs:annotation> + <xs:documentation source="public">ServiceCharacteristic</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="name" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Name of characteristic</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="valueType" type="xs:string" minOccurs="0"/> + <xs:element name="value" type="Value" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="RelatedParty" type="RelatedParty"> + <xs:annotation> + <xs:documentation source="public">A related party defines party which are involved in this order and the role they are playing. +for Beijing release: +With the current version of APIs used from SO and AAI we need to manage a ‘customer’. This customer concept is confusing with Customer BSS concept. We took the following rules to manage the ‘customer’ information: +o It could be provided through a serviceOrder in the service Order a relatedParty with role ‘ONAPcustomer’ should be provided in the serviceOrder header (we will not consider in this release the party at item level); External API component will check if this customer exists and create it in AAI if not. +o If no relatedParty are provided the service will be affected to ‘generic’ customer (dummy customer) – we assume this ‘generic’ customer always exists.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="RelatedParty"> + <xs:annotation> + <xs:documentation source="public">A related party defines party which are involved in this order and the role they are playing. +for Beijing release: +With the current version of APIs used from SO and AAI we need to manage a ‘customer’. This customer concept is confusing with Customer BSS concept. We took the following rules to manage the ‘customer’ information: +o It could be provided through a serviceOrder in the service Order a relatedParty with role ‘ONAPcustomer’ should be provided in the serviceOrder header (we will not consider in this release the party at item level); External API component will check if this customer exists and create it in AAI if not. +o If no relatedParty are provided the service will be affected to ‘generic’ customer (dummy customer) – we assume this ‘generic’ customer always exists.</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="id" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Unique identifier of a related party</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="href" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">An hyperlink to the party - not used in Beijnig release</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="role" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">The role of the related party (e.g. Owner, requester, fullfiller etc). +ONLY 'ONAPcustomer' is considered</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="name" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Name of the related party</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="@referredType" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="ServiceSpecificationRef" type="ServiceSpecificationRef"> + <xs:annotation> + <xs:documentation source="public">The service specification (these attributes are fetched from the catalogue).</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="ServiceSpecificationRef"> + <xs:annotation> + <xs:documentation source="public">The service specification (these attributes are fetched from the catalogue).</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="id" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Unique identifier of the service specification +This information will be used to retrieve SDC information + mapped to SO ModelNameVersionIdin the request.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="href" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Reference of the service specification +Not used in Beijing release.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="name" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Name of the service specification +Not used in Beijing release</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="version" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Version of the service Specification +Not used in Beijing release</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="targetServiceSchema" type="TargetServiceSchema" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">This structure could be used to describe the service</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="@type" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Not used in Beijing release</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="@schemaLocation" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Not used in Beijing release</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="@baseType" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Not used in Beijing release</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="Service" type="Service"> + <xs:annotation> + <xs:documentation source="public">Service (to be added, modified, deleted) description</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="Service"> + <xs:annotation> + <xs:documentation source="public">Service (to be added, modified, deleted) description</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="id" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Identifier of a service instance. +It must be valued if orderItem action is 'delete' and corresponds to a AAI service.id</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="href" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Reference to the Service (useful for delete or modify command). +Not managed in Beijing release.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="name" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Name of the service - When orderItem action is 'add' this name will be used in ONAP/SO request as InstaceName.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="serviceState" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">The lifecycle state of the service requested; +Not managed in Beijing release.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="@type" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">To define the service type +Not managed in Beijing Release</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="@schemaLocation" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">The URL to get the resource schema. +Not managed in Beijing Release</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="serviceCharacteristic" + type="ServiceCharacteristic" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public">A list of service characteristics .A name/value pair list used to store instance specific values of attributes. The behavior is equivalent to a MAP data structure where only one entry for any given value of "name" can exist</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="serviceRelationship" + type="ServiceRelationship" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public">A list or service relationships (ServiceRelationship[*]). Linked Services to the one instantiate, it can be : “reliesOn” if the Service needs another already owned Service to rely on (e.g. an option on an already owned mobile access Service) or “targets” or “isTargeted” (depending on the way of expressing the link) for any other kind of links that may be useful. +Only reliesOn are considered in Beijnig release.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="relatedParty" + type="RelatedParty" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public">A list of related party parties linked at the Service level (it may be a User for example). +Not managed in Beijing release</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="serviceSpecification" + type="ServiceSpecificationRef" + minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">A link to the service specification (catalog information) +This is required if orderItem action is add.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="OrderItemRelationship" type="OrderItemRelationship"> + <xs:annotation> + <xs:documentation source="public">Linked order item to the one containing this attribute. +nbi component used this relationship to sort request to ONAP.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="OrderItemRelationship"> + <xs:annotation> + <xs:documentation source="public">Linked order item to the one containing this attribute. +nbi component used this relationship to sort request to ONAP.</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="type" type="RelationshipType" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">The type of related order item, can be : dependancy if the order item needs to be “not started” until another order item is complete</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="id" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Unique identifier of an order item</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="ServiceOrderItem" type="ServiceOrderItem"> + <xs:annotation> + <xs:documentation source="public">An identified part of the order. A service order is decomposed into one or more order items.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="ServiceOrderItem"> + <xs:annotation> + <xs:documentation source="public">An identified part of the order. A service order is decomposed into one or more order items.</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="id" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Identifier of the line item (generally it is a sequence number 01, 02, 03, …)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="action" type="ActionType" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">The action to be carried out on the Service. Can be add, modify, delete, noChange</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="state" type="StateType" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">State of the order item (described in the state machine diagram) +Only Acknowledged, Rejected, InProgress, Completed, Failed will be managed for service order item state</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="percentProgress" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Progress of the delivery in percentage.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="@type" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Used to extend the order item. +not used in Beijing relase</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="@schemaLocation" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">not used in Beijing relase</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="@baseType" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">not used in Beijing relase</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="orderItemRelationship" + type="OrderItemRelationship" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public">Linked order item to the one containing this attribute</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="service" type="Service" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">The Service to be acted on by the order item</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="orderItemMessage" + type="OrderMessage" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="ServiceOrder" type="ServiceOrder"> + <xs:annotation> + <xs:documentation source="public">A Service Order is a type of order which can be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="ServiceOrder"> + <xs:annotation> + <xs:documentation source="public">A Service Order is a type of order which can be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="id" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">ID created on repository side</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="href" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Hyperlink to access the order</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="externalId" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">ID given by the consumer and only understandable by him (to facilitate his searches)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="priority" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">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)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="description" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">A free-text description of the service order</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="category" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Used to categorize the order that can be useful for the OM system (e.g. “broadband”, “TVOption”, ...)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="state" type="StateType" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">State of the order : described in the state-machine diagram +Only Acknowledged, Rejected, InProgress, Completed, Failed, Partial will be managed for service order state (Held, Pending and Cancelled are not managed)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="orderDate" type="xs:dateTime" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + <xs:element name="completionDateTime" type="xs:dateTime" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Date when the order was completed</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="requestedStartDate" type="xs:dateTime" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Order start date wished by the requestor</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="requestedCompletionDate" type="xs:dateTime" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Requested delivery date from the requestor perspective</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="expectedCompletionDate" type="xs:dateTime" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + <xs:element name="startDate" type="xs:dateTime" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Date when the order was started for processing</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="@baseType" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + <xs:element name="@type" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + <xs:element name="@schemaLocation" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + <xs:element name="relatedParty" + type="RelatedParty" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public">A list of related parties which are involved in this order and the role they are playing.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="orderRelationship" + type="OrderRelationship" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public">A list of related order references .Linked order to the one containing this attribute</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="orderItem" + type="ServiceOrderItem" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public">A list of order items that have to be processed.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="orderMessage" + type="OrderMessage" + minOccurs="0" + maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + <xs:element name="OrderRelationship" type="OrderRelationship"> + <xs:annotation> + <xs:documentation source="public">Linked order to the one containing this attribute. +This relationship is not used to sort ONAP request.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="OrderRelationship"> + <xs:annotation> + <xs:documentation source="public">Linked order to the one containing this attribute. +This relationship is not used to sort ONAP request.</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="type" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">The type of related order, can be : “dependency” if the order needs to be “not started” until another order item is complete (a service order in this case) or “cross-ref” to keep track of the source order (a productOrder)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="id" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">The id of the related order</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="href" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">A hyperlink to the related order</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="@referredType" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Type of the referred order.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="TargetServiceSchema" type="TargetServiceSchema"> + <xs:annotation> + <xs:documentation source="public">Target to the schema describing the service spec resource</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="TargetServiceSchema"> + <xs:annotation> + <xs:documentation source="public">Target to the schema describing the service spec resource</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="@type" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Indicates the (class) type of resource.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="@schemaLocation" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">This field provided a link to the schema describing this REST resource.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="Value" type="Value"> + <xs:annotation> + <xs:documentation source="public">Value is a descriptive structure for service characteristic</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="Value"> + <xs:annotation> + <xs:documentation source="public">Value is a descriptive structure for service characteristic</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="serviceCharacteristicValue" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Value of the characteristic.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="CreateServiceOrderItem" type="CreateServiceOrderItem"> + <xs:annotation> + <xs:documentation source="public">This structure is used in the operation POST for a serviceOrder request to describe an item. +Attribute description is not accurate and should be find in the serviceOrderItem class.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="CreateServiceOrderItem"> + <xs:annotation> + <xs:documentation source="public">This structure is used in the operation POST for a serviceOrder request to describe an item. +Attribute description is not accurate and should be find in the serviceOrderItem class.</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="id" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Identifier of the line item (generally it is a sequence number 01, 02, 03, …)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="action" type="ActionType" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">The action to be carried out on the Service. Can be add, modify, delete, noChange</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="orderItemRelationship" + type="OrderItemRelationship" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public">Linked order item to the one containing this attribute</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="service" type="Service" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">The Service to be acted on by the order item</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="CreateServiceOrder" type="CreateServiceOrder"> + <xs:annotation> + <xs:documentation source="public">This structure is used in the operation POST for a serviceOrder request. +Attribute description is not accurate and should be find in the serviceOrder class.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="CreateServiceOrder"> + <xs:annotation> + <xs:documentation source="public">This structure is used in the operation POST for a serviceOrder request. +Attribute description is not accurate and should be find in the serviceOrder class.</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="externalId" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">ID given by the consumer and only understandable by him (to facilitate his searches)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="priority" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">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)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="description" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">A free-text description of the service order</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="category" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Used to categorize the order that can be useful for the OM system (e.g. “broadband”, “TVOption”, ...)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="requestedStartDate" type="xs:dateTime" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Order start date wished by the requestor</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="requestedCompletionDate" type="xs:dateTime" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Requested delivery date from the requestor perspective</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="relatedParty" + type="RelatedParty" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public">A list of related parties which are involved in this order and the role they are playing.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="orderRelationship" + type="OrderRelationship" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public">A list of related order references .Linked order to the one containing this attribute</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="orderItem" + type="CreateServiceOrderItem" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public">A list of order items that have to be processed.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="ServiceOrderSummary" type="ServiceOrderSummary"> + <xs:annotation> + <xs:documentation source="public">This structure is used to provide a subset of serviceOrder attributes to be provided in particular for notification messages</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="ServiceOrderSummary"> + <xs:annotation> + <xs:documentation source="public">This structure is used to provide a subset of serviceOrder attributes to be provided in particular for notification messages</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="id" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">ID created on repository side</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="href" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Hyperlink to access the order</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="externalId" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">ID given by the consumer and only understandable by him (to facilitate his searches)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="state" type="StateType" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">State of the order : described in the state-machine diagram +Only Acknowledged, Rejected, InProgress, Completed, Failed, Partial will be managed for service order state (Held, Pending and Cancelled are not managed)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="orderDate" type="xs:dateTime" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + <xs:element name="completionDateTime" type="xs:dateTime" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Date when the order was completed</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="Notification" type="Notification"> + <xs:annotation> + <xs:documentation source="public">Notification structure for a serviceOrdering notification</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="Notification"> + <xs:annotation> + <xs:documentation source="public">Notification structure for a serviceOrdering notification</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="eventId" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + <xs:element name="eventDate" type="xs:dateTime" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + <xs:element name="eventType" type="EventType" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + <xs:element name="event" type="ServiceOrderSummaryWithItem" minOccurs="1"/> + </xs:sequence> + </xs:complexType> + <xs:element name="ServiceOrderItemSummary" type="ServiceOrderItemSummary"> + <xs:annotation> + <xs:documentation source="public">Service Order item summary to be used for notification</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="ServiceOrderItemSummary"> + <xs:annotation> + <xs:documentation source="public">Service Order item summary to be used for notification</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="id" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Identifier of the line item (generally it is a sequence number 01, 02, 03, …)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="action" type="ActionType" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">The action to be carried out on the Service. Can be add, modify, delete, noChange +modify is not managed in Beijing release.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="state" type="StateType" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">State of the order item (described in the state machine diagram) +Only Acknowledged, Rejected, InProgress, Completed, Failed will be managed for service order item state</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="service" type="Service" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">The Service to be acted on by the order item</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="ServiceOrderSummaryWithItem" type="ServiceOrderSummaryWithItem"> + <xs:annotation> + <xs:documentation source="public">Service order item summary with item description</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="ServiceOrderSummaryWithItem"> + <xs:annotation> + <xs:documentation source="public">Service order item summary with item description</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="id" type="xs:string" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">ID created on repository side</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="href" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Hyperlink to access the order</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="externalId" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">ID given by the consumer and only understandable by him (to facilitate his searches)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="state" type="StateType" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">State of the order : described in the state-machine diagram +Only Acknowledged, Rejected, InProgress, Completed, Failed, Partial will be managed for service order state (Held, Pending and Cancelled are not managed)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="orderDate" type="xs:dateTime" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public"/> + </xs:annotation> + </xs:element> + <xs:element name="completionDateTime" type="xs:dateTime" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Date when the order was completed</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="orderItem" + type="ServiceOrderItemSummary" + minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation source="public">A list of order items that have to be processed.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:element name="OrderMessage" type="OrderMessage"> + <xs:annotation> + <xs:documentation source="public">An optional array of messages associated with the Order</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="OrderMessage"> + <xs:annotation> + <xs:documentation source="public">An optional array of messages associated with the Order</xs:documentation> + </xs:annotation> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="code" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">A code associated to this message</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="field" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Service Order attribute related to this error message</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="messageInformation" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:documentation source="public">Message related to this order</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="severity" type="SeverityMessage" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Gravity of this message</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="correctionRequired" type="xs:boolean" minOccurs="1"> + <xs:annotation> + <xs:documentation source="public">Indicator that an action is required to allow service order fullfilment to follow up</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> +</xs:schema> diff --git a/docs/offeredapis/api_serviceOrder/swagger.json b/docs/offeredapis/api_serviceOrder/swagger.json new file mode 100644 index 0000000..8d424c7 --- /dev/null +++ b/docs/offeredapis/api_serviceOrder/swagger.json @@ -0,0 +1,1110 @@ + + { + "swagger": "2.0", + "info": { + "description": "Request the instantiation of a service\n\nA 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.\n\nList of available subscription for serviceOrdering notifications, see /hub resources for more information:\n\n- ServiceOrderCreationNotification\n- ServiceOrderStateChangeNotification\n- ServiceOrderItemStateChangeNotification\n\n", + "version": "4.0.0_inProgress", + "title": "API ServiceOrder", + "x-logo": { + "url": "/redoc/logo.png", + "backgroundColor": "#FFFFFF" + } + }, + + "host": "localhost:8080", + "basePath": "/nbi/api/v4", + "schemes": [ + "http" + ], + "produces": [ + "application/json;charset=utf-8" + ], + "tags": [ + + { + "name": "ServiceOrder", + "description": "provided by NBI" + }, + { + "name": "Notification", + "description": "provided by subscribers, which MUST registered by creating a hub resource" + } + ], + "paths": { + "/serviceOrder": { + "post": { + "tags": [ + "ServiceOrder" + ], + "consumes": [ + "application/json;charset=utf-8" + ], + "produces": [ + "application/json;charset=utf-8" + ], + "operationId": "serviceOrderCreate", + "summary": "Create a service order", + "description": "This operation creates a service order entity.\nThe 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.\nPOST 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.\n\nIn 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.\n\nIn 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.\nDepending 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.", + "deprecated": false, + + "parameters": [ + + { + "name": "serviceOrder", + "required": true, + "in": "body", + "description": "", + "schema": { + "$ref": "#/definitions/CreateServiceOrder" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ServiceOrder" + } + + } + } + }, + "get": { + "tags": [ + "ServiceOrder" + ], + "produces": [ + "application/json;charset=utf-8" + ], + "operationId": "serviceOrderFind", + "summary": "List service orders", + "description": "Retrieve and list service order entities according to given criteria.\nOnly a predefined set of attribute is proposed.\nAttribute selection could be described in the fields attribute.", + "deprecated": false, + + "parameters": [ + + { + "name": "externalId", + "required": false, + "in": "query", + "description": "", + + "type": "string" + }, + { + "name": "state", + "required": false, + "in": "query", + "description": "state of the order(s) to be retrieved", + + "type": "string" + }, + { + "name": "description", + "required": false, + "in": "query", + "description": "", + + "type": "string" + }, + { + "name": "orderDate.gt", + "required": false, + "in": "query", + "description": "order date greather than", + + "type": "string" + }, + { + "name": "orderDate.lt", + "required": false, + "in": "query", + "description": "order date lower than", + + "type": "string" + }, + { + "name": "fields", + "required": false, + "in": "query", + "description": "this attribute could be used to filter retrieved attribute(s) and/or sort SO.", + + "type": "string" + }, + { + "name": "offset", + "required": false, + "in": "query", + "description": "The index of the first element to retrieve. Zero is the first element of the collection.", + + "type": "integer", + "format": "int32" + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The maximum number of elements to retrieve (it can be greater than the actual available number of items).", + + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ServiceOrder" + } + }, + "headers": { + "X-Total-Count": { + "description": "", + "type": "integer", + "format": "int32" + }, + "X-Result-Count": { + "description": "", + "type": "integer", + "format": "int32" + } + } + + } + } + } + }, + "/serviceOrder/{id}": { + "get": { + "tags": [ + "ServiceOrder" + ], + "produces": [ + "application/json;charset=utf-8" + ], + "operationId": "serviceOrderGet", + "summary": "Retrieve a service order", + "description": "This operation retrieves a service order entity. \nAttribute selection is enabled for all first level attributes.", + "deprecated": false, + + "parameters": [ + + { + "name": "id", + "required": true, + "in": "path", + "type" : "string" + }, + { + "name": "fields", + "required": false, + "in": "query", + "description": "Attribute selection", + + "type": "string" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/ServiceOrder" + } + + } + } + } + }, + "/notification": { + "post": { + "tags": [ + "Notification" + ], + "consumes": [ + "application/json;charset=utf-8" + ], + "produces": [ + "application/json;charset=utf-8" + ], + "operationId": "notificationCreate", + "summary": "NBI will send notification to this operation provided by subscribers", + "description": "Notification structure depends of the eventType:\n\n- ServiceOrderCreationNotification\n- ServiceOrderStateChangeNotification\n\n```\n{\n \"eventId\": \"string\",\n \"eventDate\": \"2019-03-12T16:21:27.530Z\",\n \"eventType\": \"string\",\n \"event\": {\n \"id\": \"string\",\n \"href\": \"string\",\n \"externalId\": \"string\",\n \"state\": \"acknowledged\",\n \"orderDate\": \"2019-03-12T16:21:27.530Z\",\n \"completionDateTime\": \"2019-03-12T16:21:27.530Z\"\n }\n}\n```\n\n- ServiceOrderItemStateChangeNotification\n\n```\n{\n \"eventId\": \"string\",\n \"eventDate\": \"2019-03-12T16:21:44.066Z\",\n \"eventType\": \"string\",\n \"event\": {\n \"id\": \"string\",\n \"href\": \"string\",\n \"externalId\": \"string\",\n \"state\": \"acknowledged\",\n \"orderDate\": \"2019-03-12T16:21:44.066Z\",\n \"completionDateTime\": \"2019-03-12T16:21:44.066Z\",\n \"orderItem\": [\n {\n \"id\": \"string\",\n \"action\": \"add\",\n \"state\": \"acknowledged\",\n \"service\": {\n \"id\": \"string\",\n \"href\": \"string\",\n \"name\": \"string\",\n \"serviceState\": \"string\",\n \"serviceCharacteristic\": [\n {\n \"name\": \"string\",\n \"valueType\": \"string\",\n \"value\": {\n \"serviceCharacteristicValue\": \"string\"\n }\n }\n ],\n \"serviceRelationship\": [\n {\n \"type\": \"reliesOn\"\n }\n ],\n \"relatedParty\": [\n {\n \"id\": \"string\",\n \"href\": \"string\",\n \"role\": \"string\",\n \"name\": \"string\",\n \"@referredType\": \"string\"\n }\n ],\n \"serviceSpecification\": {\n \"id\": \"string\",\n \"href\": \"string\",\n \"name\": \"string\",\n \"version\": \"string\",\n }\n }\n }\n ]\n }\n}\n```", + "deprecated": false, + + "parameters": [ + + { + "name": "Notification", + "required": true, + "in": "body", + "description": "", + "schema": { + "$ref": "#/definitions/Notification" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Notification" + } + + } + } + } + } + }, + "definitions": { + + "ActionType": { + "description": "Action type to be describer on the order item.\nmodify is not managed in Beijing release", + + "type": "string", + "enum": [ + "add", + "modify", + "delete", + "noChange"] + + }, + "StateType": { + "description": "List of possible state for the order and the orderItem.", + + "type": "string", + "enum": [ + "acknowledged", + "rejected", + "pending", + "held", + "inProgress", + "cancelled", + "completed", + "failed", + "partial"] + + }, + "RelationshipType": { + "description": "Relationship type;\nOnly reliesOn is managed in Beijing release.", + + "type": "string", + "enum": [ + "reliesOn"] + + }, + "EventType": { + "description": "", + + "type": "string", + "enum": [ + "ServiceOrderCreationNotification", + "ServiceOrderStateChangeNotification", + "ServiceOrderItemStateChangeNotification"] + + }, + "SeverityMessage": { + "description": "", + + "type": "string", + "enum": [ + "information", + "error"] + + }, + + "Error": { + "description": "", + + + "required": [ + + "code", + "reason" + ], + "type": "object", + "properties": { + "code": { + "description": "Application related code (as defined in the API or from a common list)", + "type": "integer", + "format": "int32" + }, + "reason": { + "description": "Text that explains the reason for error. This can be shown to a client user.", + "type": "string" + }, + "message": { + "description": "Text that provide more details and corrective actions related to the error. This can be shown to a client user", + "type": "string" + }, + "status": { + "description": "http error code extension like 400-2", + "type": "string" + }, + "referenceError": { + "description": "url pointing to documentation describing the error", + "type": "string" + } + } + + }, + + "ServiceRelationship": { + "description": "Linked Services to the one instantiate\nnbi component used this relationship to sort request to ONAP.", + + + "required": [ + + "type", + "service" + ], + "type": "object", + "properties": { + "type": { + + "$ref": "#/definitions/RelationshipType" + }, + "service": { + + "$ref": "#/definitions/Service" + } + } + + }, + + "ServiceRef": { + "description": "Service references", + + + "required": [ + + "id" + ], + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the service", + "type": "string" + }, + "href": { + "description": "Reference of the service", + "type": "string" + } + } + + }, + + "ServiceCharacteristic": { + "description": "ServiceCharacteristic", + + + "required": [ + + "name" + ], + "type": "object", + "properties": { + "name": { + "description": "Name of characteristic", + "type": "string" + }, + "valueType": { + "description": "", + "type": "string" + }, + "value": { + + "$ref": "#/definitions/Value" + } + } + + }, + + "RelatedParty": { + "description": "A related party defines party which are involved in this order and the role they are playing.\nfor Beijing release:\nWith the current version of APIs used from SO and AAI we need to manage a ‘customer’. This customer concept is confusing with Customer BSS concept. We took the following rules to manage the ‘customer’ information:\no\tIt could be provided through a serviceOrder in the service Order a relatedParty with role ‘ONAPcustomer’ should be provided in the serviceOrder header (we will not consider in this release the party at item level); External API component will check if this customer exists and create it in AAI if not.\no\tIf no relatedParty are provided the service will be affected to ‘generic’ customer (dummy customer) – we assume this ‘generic’ customer always exists.", + + + "required": [ + + "id", + "role" + ], + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of a related party", + "type": "string" + }, + "href": { + "description": "An hyperlink to the party - not used in Beijnig release", + "type": "string" + }, + "role": { + "description": "The role of the related party (e.g. Owner, requester, fullfiller etc).\nONLY 'ONAPcustomer' is considered", + "type": "string" + }, + "name": { + "description": "Name of the related party", + "type": "string" + }, + "@referredType": { + "description": "", + "type": "string" + } + } + + }, + + "ServiceSpecificationRef": { + "description": "The service specification (these attributes are fetched from the catalogue).", + + + "required": [ + + "id" + ], + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the service specification\nThis information will be used to retrieve SDC information + mapped to SO ModelNameVersionIdin the request.", + "type": "string" + }, + "href": { + "description": "Reference of the service specification\nNot used in Beijing release.", + "type": "string" + }, + "name": { + "description": "Name of the service specification\nNot used in Beijing release", + "type": "string" + }, + "version": { + "description": "Version of the service Specification\nNot used in Beijing release", + "type": "string" + }, + "targetServiceSchema": { + + "$ref": "#/definitions/TargetServiceSchema" + }, + "@type": { + "description": "Not used in Beijing release", + "type": "string" + }, + "@schemaLocation": { + "description": "Not used in Beijing release", + "type": "string" + }, + "@baseType": { + "description": "Not used in Beijing release", + "type": "string" + } + } + + }, + + "Service": { + "description": "Service (to be added, modified, deleted) description", + + + "required": [ + + "id" + ], + "type": "object", + "properties": { + "id": { + "description": "Identifier of a service instance.\nIt must be valued if orderItem action is 'delete' and corresponds to a AAI service.id", + "type": "string" + }, + "href": { + "description": "Reference to the Service (useful for delete or modify command).\nNot managed in Beijing release.", + "type": "string" + }, + "name": { + "description": "Name of the service - When orderItem action is 'add' this name will be used in ONAP/SO request as InstaceName.", + "type": "string" + }, + "serviceState": { + "description": "The lifecycle state of the service requested;\nNot managed in Beijing release.", + "type": "string" + }, + "@type": { + "description": "To define the service type\nNot managed in Beijing Release", + "type": "string" + }, + "@schemaLocation": { + "description": "The URL to get the resource schema.\nNot managed in Beijing Release", + "type": "string" + }, + "serviceCharacteristic": { + + "type": "array", + "items": { + "$ref": "#/definitions/ServiceCharacteristic" + } + }, + "serviceRelationship": { + + "type": "array", + "items": { + "$ref": "#/definitions/ServiceRelationship" + } + }, + "relatedParty": { + + "type": "array", + "items": { + "$ref": "#/definitions/RelatedParty" + } + }, + "serviceSpecification": { + + "$ref": "#/definitions/ServiceSpecificationRef" + } + } + + }, + + "OrderItemRelationship": { + "description": "Linked order item to the one containing this attribute.\nnbi component used this relationship to sort request to ONAP.", + + + "required": [ + + "type", + "id" + ], + "type": "object", + "properties": { + "type": { + + "$ref": "#/definitions/RelationshipType" + }, + "id": { + "description": "Unique identifier of an order item", + "type": "string" + } + } + + }, + + "ServiceOrderItem": { + "description": "An identified part of the order. A service order is decomposed into one or more order items.", + + + "required": [ + + "id", + "service" + ], + "type": "object", + "properties": { + "id": { + "description": "Identifier of the line item (generally it is a sequence number 01, 02, 03, …)", + "type": "string" + }, + "action": { + + "$ref": "#/definitions/ActionType" + }, + "state": { + + "$ref": "#/definitions/StateType" + }, + "percentProgress": { + "description": "Progress of the delivery in percentage.", + "type": "string" + }, + "@type": { + "description": "Used to extend the order item.\nnot used in Beijing relase", + "type": "string" + }, + "@schemaLocation": { + "description": "not used in Beijing relase", + "type": "string" + }, + "@baseType": { + "description": "not used in Beijing relase", + "type": "string" + }, + "orderItemRelationship": { + + "type": "array", + "items": { + "$ref": "#/definitions/OrderItemRelationship" + } + }, + "service": { + + "$ref": "#/definitions/Service" + }, + "orderItemMessage": { + + "type": "array", + "items": { + "$ref": "#/definitions/OrderMessage" + } + } + } + + }, + + "ServiceOrder": { + "description": "A Service Order is a type of order which can be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa", + + + "required": [ + + "id" + ], + "type": "object", + "properties": { + "id": { + "description": "ID created on repository side", + "type": "string" + }, + "href": { + "description": "Hyperlink to access the order", + "type": "string" + }, + "externalId": { + "description": "ID given by the consumer and only understandable by him (to facilitate his searches)", + "type": "string" + }, + "priority": { + "description": "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)", + "type": "string" + }, + "description": { + "description": "A free-text description of the service order", + "type": "string" + }, + "category": { + "description": "Used to categorize the order that can be useful for the OM system (e.g. “broadband”, “TVOption”, ...)", + "type": "string" + }, + "state": { + + "$ref": "#/definitions/StateType" + }, + "orderDate": { + "description": "", + "type": "string", + "format": "date-time" + }, + "completionDateTime": { + "description": "Date when the order was completed", + "type": "string", + "format": "date-time" + }, + "requestedStartDate": { + "description": "Order start date wished by the requestor", + "type": "string", + "format": "date-time" + }, + "requestedCompletionDate": { + "description": "Requested delivery date from the requestor perspective", + "type": "string", + "format": "date-time" + }, + "expectedCompletionDate": { + "description": "", + "type": "string", + "format": "date-time" + }, + "startDate": { + "description": "Date when the order was started for processing", + "type": "string", + "format": "date-time" + }, + "@baseType": { + "description": "", + "type": "string" + }, + "@type": { + "description": "", + "type": "string" + }, + "@schemaLocation": { + "description": "", + "type": "string" + }, + "relatedParty": { + + "type": "array", + "items": { + "$ref": "#/definitions/RelatedParty" + } + }, + "orderRelationship": { + + "type": "array", + "items": { + "$ref": "#/definitions/OrderRelationship" + } + }, + "orderItem": { + + "type": "array", + "items": { + "$ref": "#/definitions/ServiceOrderItem" + } + }, + "orderMessage": { + + "type": "array", + "items": { + "$ref": "#/definitions/OrderMessage" + } + } + } + + }, + + "OrderRelationship": { + "description": "Linked order to the one containing this attribute.\nThis relationship is not used to sort ONAP request.", + + + "required": [ + + "id" + ], + "type": "object", + "properties": { + "type": { + "description": "The type of related order, can be : “dependency” if the order needs to be “not started” until another order item is complete (a service order in this case) or “cross-ref” to keep track of the source order (a productOrder)", + "type": "string" + }, + "id": { + "description": "The id of the related order", + "type": "string" + }, + "href": { + "description": "A hyperlink to the related order", + "type": "string" + }, + "@referredType": { + "description": "Type of the referred order.", + "type": "string" + } + } + + }, + + "TargetServiceSchema": { + "description": "Target to the schema describing the service spec resource", + + + "required": [ + + "@type", + "@schemaLocation" + ], + "type": "object", + "properties": { + "@type": { + "description": "Indicates the (class) type of resource.", + "type": "string" + }, + "@schemaLocation": { + "description": "This field provided a link to the schema describing this REST resource.", + "type": "string" + } + } + + }, + + "Value": { + "description": "Value is a descriptive structure for service characteristic", + + + "type": "object", + "properties": { + "serviceCharacteristicValue": { + "description": "Value of the characteristic.", + "type": "string" + } + } + + }, + + "CreateServiceOrderItem": { + "description": "This structure is used in the operation POST for a serviceOrder request to describe an item.\nAttribute description is not accurate and should be find in the serviceOrderItem class.", + + + "required": [ + + "id", + "service" + ], + "type": "object", + "properties": { + "id": { + "description": "Identifier of the line item (generally it is a sequence number 01, 02, 03, …)", + "type": "string" + }, + "action": { + + "$ref": "#/definitions/ActionType" + }, + "orderItemRelationship": { + + "type": "array", + "items": { + "$ref": "#/definitions/OrderItemRelationship" + } + }, + "service": { + + "$ref": "#/definitions/Service" + } + } + + }, + + "CreateServiceOrder": { + "description": "This structure is used in the operation POST for a serviceOrder request.\nAttribute description is not accurate and should be find in the serviceOrder class.", + + + "type": "object", + "properties": { + "externalId": { + "description": "ID given by the consumer and only understandable by him (to facilitate his searches)", + "type": "string" + }, + "priority": { + "description": "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)", + "type": "string" + }, + "description": { + "description": "A free-text description of the service order", + "type": "string" + }, + "category": { + "description": "Used to categorize the order that can be useful for the OM system (e.g. “broadband”, “TVOption”, ...)", + "type": "string" + }, + "requestedStartDate": { + "description": "Order start date wished by the requestor", + "type": "string", + "format": "date-time" + }, + "requestedCompletionDate": { + "description": "Requested delivery date from the requestor perspective", + "type": "string", + "format": "date-time" + }, + "relatedParty": { + + "type": "array", + "items": { + "$ref": "#/definitions/RelatedParty" + } + }, + "orderRelationship": { + + "type": "array", + "items": { + "$ref": "#/definitions/OrderRelationship" + } + }, + "orderItem": { + + "type": "array", + "items": { + "$ref": "#/definitions/CreateServiceOrderItem" + } + } + } + + }, + + "ServiceOrderSummary": { + "description": "This structure is used to provide a subset of serviceOrder attributes to be provided in particular for notification messages", + + + "required": [ + + "id" + ], + "type": "object", + "properties": { + "id": { + "description": "ID created on repository side", + "type": "string" + }, + "href": { + "description": "Hyperlink to access the order", + "type": "string" + }, + "externalId": { + "description": "ID given by the consumer and only understandable by him (to facilitate his searches)", + "type": "string" + }, + "state": { + + "$ref": "#/definitions/StateType" + }, + "orderDate": { + "description": "", + "type": "string", + "format": "date-time" + }, + "completionDateTime": { + "description": "Date when the order was completed", + "type": "string", + "format": "date-time" + } + } + + }, + + "Notification": { + "description": "Notification structure for a serviceOrdering notification", + + + "required": [ + + "eventId", + "eventDate", + "eventType", + "event" + ], + "type": "object", + "properties": { + "eventId": { + "description": "", + "type": "string" + }, + "eventDate": { + "description": "", + "type": "string", + "format": "date-time" + }, + "eventType": { + + "$ref": "#/definitions/EventType" + }, + "event": { + + "$ref": "#/definitions/ServiceOrderSummaryWithItem" + } + } + + }, + + "ServiceOrderItemSummary": { + "description": "Service Order item summary to be used for notification", + + + "required": [ + + "id", + "service" + ], + "type": "object", + "properties": { + "id": { + "description": "Identifier of the line item (generally it is a sequence number 01, 02, 03, …)", + "type": "string" + }, + "action": { + + "$ref": "#/definitions/ActionType" + }, + "state": { + + "$ref": "#/definitions/StateType" + }, + "service": { + + "$ref": "#/definitions/Service" + } + } + + }, + + "ServiceOrderSummaryWithItem": { + "description": "Service order item summary with item description", + + + "required": [ + + "id" + ], + "type": "object", + "properties": { + "id": { + "description": "ID created on repository side", + "type": "string" + }, + "href": { + "description": "Hyperlink to access the order", + "type": "string" + }, + "externalId": { + "description": "ID given by the consumer and only understandable by him (to facilitate his searches)", + "type": "string" + }, + "state": { + + "$ref": "#/definitions/StateType" + }, + "orderDate": { + "description": "", + "type": "string", + "format": "date-time" + }, + "completionDateTime": { + "description": "Date when the order was completed", + "type": "string", + "format": "date-time" + }, + "orderItem": { + + "type": "array", + "items": { + "$ref": "#/definitions/ServiceOrderItemSummary" + } + } + } + + }, + + "OrderMessage": { + "description": "An optional array of messages associated with the Order", + + + "required": [ + + "severity", + "correctionRequired" + ], + "type": "object", + "properties": { + "code": { + "description": "A code associated to this message", + "type": "string" + }, + "field": { + "description": "Service Order attribute related to this error message", + "type": "string" + }, + "messageInformation": { + "description": "Message related to this order", + "type": "string" + }, + "severity": { + + "$ref": "#/definitions/SeverityMessage" + }, + "correctionRequired": { + "description": "Indicator that an action is required to allow service order fullfilment to follow up", + "type": "boolean" + } + } + + } + } + } +
\ No newline at end of file diff --git a/docs/offeredapis/api_serviceOrder/swagger.yaml b/docs/offeredapis/api_serviceOrder/swagger.yaml new file mode 100644 index 0000000..36d8e87 --- /dev/null +++ b/docs/offeredapis/api_serviceOrder/swagger.yaml @@ -0,0 +1,784 @@ +swagger: "2.0" +info: + description: "Request the instantiation of a service\n\nA 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.\n\nList of\ + \ available subscription for serviceOrdering notifications, see /hub resources\ + \ for more information:\n\n- ServiceOrderCreationNotification\n- ServiceOrderStateChangeNotification\n\ + - ServiceOrderItemStateChangeNotification\n\n" + version: "4.0.0_inProgress" + title: "API ServiceOrder" + x-logo: + url: "/redoc/logo.png" + backgroundColor: "#FFFFFF" +host: "localhost:8080" +basePath: "/nbi/api/v4" +schemes: +- "http" +produces: +- "application/json;charset=utf-8" +tags: +- name: "ServiceOrder" + description: "provided by NBI" +- name: "Notification" + description: "provided by subscribers, which MUST registered by creating a hub resource" +paths: + /serviceOrder: + post: + tags: + - "ServiceOrder" + consumes: + - "application/json;charset=utf-8" + produces: + - "application/json;charset=utf-8" + operationId: "serviceOrderCreate" + summary: "Create a service order" + description: "This operation creates a service order entity.\nThe 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.\nPOST 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.\n\nIn 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.\n\nIn 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.\nDepending 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." + deprecated: false + parameters: + - name: "serviceOrder" + required: true + in: "body" + description: "" + schema: + $ref: "#/definitions/CreateServiceOrder" + responses: + 201: + description: "Created" + schema: + $ref: "#/definitions/ServiceOrder" + get: + tags: + - "ServiceOrder" + produces: + - "application/json;charset=utf-8" + operationId: "serviceOrderFind" + summary: "List service orders" + description: "Retrieve and list service order entities according to given criteria.\n\ + Only a predefined set of attribute is proposed.\nAttribute selection could\ + \ be described in the fields attribute." + deprecated: false + parameters: + - name: "externalId" + required: false + in: "query" + description: "" + type: "string" + - name: "state" + required: false + in: "query" + description: "state of the order(s) to be retrieved" + type: "string" + - name: "description" + required: false + in: "query" + description: "" + type: "string" + - name: "orderDate.gt" + required: false + in: "query" + description: "order date greather than" + type: "string" + - name: "orderDate.lt" + required: false + in: "query" + description: "order date lower than" + type: "string" + - name: "fields" + required: false + in: "query" + description: "this attribute could be used to filter retrieved attribute(s)\ + \ and/or sort SO." + type: "string" + - name: "offset" + required: false + in: "query" + description: "The index of the first element to retrieve. Zero is the first\ + \ element of the collection." + type: "integer" + format: "int32" + - name: "limit" + required: false + in: "query" + description: "The maximum number of elements to retrieve (it can be greater\ + \ than the actual available number of items)." + type: "integer" + format: "int32" + responses: + 200: + description: "Ok" + schema: + type: "array" + items: + $ref: "#/definitions/ServiceOrder" + headers: + X-Total-Count: + description: "" + type: "integer" + format: "int32" + X-Result-Count: + description: "" + type: "integer" + format: "int32" + /serviceOrder/{id}: + get: + tags: + - "ServiceOrder" + produces: + - "application/json;charset=utf-8" + operationId: "serviceOrderGet" + summary: "Retrieve a service order" + description: "This operation retrieves a service order entity. \nAttribute selection\ + \ is enabled for all first level attributes." + deprecated: false + parameters: + - name: "id" + required: true + in: "path" + type: "string" + - name: "fields" + required: false + in: "query" + description: "Attribute selection" + type: "string" + responses: + 200: + description: "Ok" + schema: + $ref: "#/definitions/ServiceOrder" + /notification: + post: + tags: + - "Notification" + consumes: + - "application/json;charset=utf-8" + produces: + - "application/json;charset=utf-8" + operationId: "notificationCreate" + summary: "NBI will send notification to this operation provided by subscribers" + description: "Notification structure depends of the eventType:\n\n- ServiceOrderCreationNotification\n\ + - ServiceOrderStateChangeNotification\n\n```\n{\n \"eventId\": \"string\"\ + ,\n \"eventDate\": \"2019-03-12T16:21:27.530Z\",\n \"eventType\": \"string\"\ + ,\n \"event\": {\n \"id\": \"string\",\n \"href\": \"string\",\n \ + \ \"externalId\": \"string\",\n \"state\": \"acknowledged\",\n \"orderDate\"\ + : \"2019-03-12T16:21:27.530Z\",\n \"completionDateTime\": \"2019-03-12T16:21:27.530Z\"\ + \n }\n}\n```\n\n- ServiceOrderItemStateChangeNotification\n\n```\n{\n \"\ + eventId\": \"string\",\n \"eventDate\": \"2019-03-12T16:21:44.066Z\",\n \ + \ \"eventType\": \"string\",\n \"event\": {\n \"id\": \"string\",\n \ + \ \"href\": \"string\",\n \"externalId\": \"string\",\n \"state\":\ + \ \"acknowledged\",\n \"orderDate\": \"2019-03-12T16:21:44.066Z\",\n \ + \ \"completionDateTime\": \"2019-03-12T16:21:44.066Z\",\n \"orderItem\"\ + : [\n {\n \"id\": \"string\",\n \"action\": \"add\",\n\ + \ \"state\": \"acknowledged\",\n \"service\": {\n \"\ + id\": \"string\",\n \"href\": \"string\",\n \"name\": \"\ + string\",\n \"serviceState\": \"string\",\n \"serviceCharacteristic\"\ + : [\n {\n \"name\": \"string\",\n \"\ + valueType\": \"string\",\n \"value\": {\n \"serviceCharacteristicValue\"\ + : \"string\"\n }\n }\n ],\n \"serviceRelationship\"\ + : [\n {\n \"type\": \"reliesOn\"\n }\n\ + \ ],\n \"relatedParty\": [\n {\n \ + \ \"id\": \"string\",\n \"href\": \"string\",\n \ + \ \"role\": \"string\",\n \"name\": \"string\",\n \ + \ \"@referredType\": \"string\"\n }\n ],\n \ + \ \"serviceSpecification\": {\n \"id\": \"string\",\n \ + \ \"href\": \"string\",\n \"name\": \"string\",\n \ + \ \"version\": \"string\",\n }\n }\n }\n ]\n }\n\ + }\n```" + deprecated: false + parameters: + - name: "Notification" + required: true + in: "body" + description: "" + schema: + $ref: "#/definitions/Notification" + responses: + 201: + description: "Created" + schema: + $ref: "#/definitions/Notification" +definitions: + ActionType: + description: "Action type to be describer on the order item.\nmodify is not managed\ + \ in Beijing release" + type: "string" + enum: + - "add" + - "modify" + - "delete" + - "noChange" + StateType: + description: "List of possible state for the order and the orderItem." + type: "string" + enum: + - "acknowledged" + - "rejected" + - "pending" + - "held" + - "inProgress" + - "cancelled" + - "completed" + - "failed" + - "partial" + RelationshipType: + description: "Relationship type;\nOnly reliesOn is managed in Beijing release." + type: "string" + enum: + - "reliesOn" + EventType: + description: "" + type: "string" + enum: + - "ServiceOrderCreationNotification" + - "ServiceOrderStateChangeNotification" + - "ServiceOrderItemStateChangeNotification" + SeverityMessage: + description: "" + type: "string" + enum: + - "information" + - "error" + Error: + description: "" + required: + - "code" + - "reason" + type: "object" + properties: + code: + description: "Application related code (as defined in the API or from a common\ + \ list)" + type: "integer" + format: "int32" + reason: + description: "Text that explains the reason for error. This can be shown to\ + \ a client user." + type: "string" + message: + description: "Text that provide more details and corrective actions related\ + \ to the error. This can be shown to a client user" + type: "string" + status: + description: "http error code extension like 400-2" + type: "string" + referenceError: + description: "url pointing to documentation describing the error" + type: "string" + ServiceRelationship: + description: "Linked Services to the one instantiate\nnbi component used this\ + \ relationship to sort request to ONAP." + required: + - "type" + - "service" + type: "object" + properties: + type: + $ref: "#/definitions/RelationshipType" + service: + $ref: "#/definitions/Service" + ServiceRef: + description: "Service references" + required: + - "id" + type: "object" + properties: + id: + description: "Unique identifier of the service" + type: "string" + href: + description: "Reference of the service" + type: "string" + ServiceCharacteristic: + description: "ServiceCharacteristic" + required: + - "name" + type: "object" + properties: + name: + description: "Name of characteristic" + type: "string" + valueType: + description: "" + type: "string" + value: + $ref: "#/definitions/Value" + RelatedParty: + description: "A related party defines party which are involved in this order and\ + \ the role they are playing.\nfor Beijing release:\nWith the current version\ + \ of APIs used from SO and AAI we need to manage a ‘customer’. This customer\ + \ concept is confusing with Customer BSS concept. We took the following rules\ + \ to manage the ‘customer’ information:\no\tIt could be provided through a serviceOrder\ + \ in the service Order a relatedParty with role ‘ONAPcustomer’ should be provided\ + \ in the serviceOrder header (we will not consider in this release the party\ + \ at item level); External API component will check if this customer exists\ + \ and create it in AAI if not.\no\tIf no relatedParty are provided the service\ + \ will be affected to ‘generic’ customer (dummy customer) – we assume this ‘\ + generic’ customer always exists." + required: + - "id" + - "role" + type: "object" + properties: + id: + description: "Unique identifier of a related party" + type: "string" + href: + description: "An hyperlink to the party - not used in Beijnig release" + type: "string" + role: + description: "The role of the related party (e.g. Owner, requester, fullfiller\ + \ etc).\nONLY 'ONAPcustomer' is considered" + type: "string" + name: + description: "Name of the related party" + type: "string" + '@referredType': + description: "" + type: "string" + ServiceSpecificationRef: + description: "The service specification (these attributes are fetched from the\ + \ catalogue)." + required: + - "id" + type: "object" + properties: + id: + description: "Unique identifier of the service specification\nThis information\ + \ will be used to retrieve SDC information + mapped to SO ModelNameVersionIdin\ + \ the request." + type: "string" + href: + description: "Reference of the service specification\nNot used in Beijing\ + \ release." + type: "string" + name: + description: "Name of the service specification\nNot used in Beijing release" + type: "string" + version: + description: "Version of the service Specification\nNot used in Beijing release" + type: "string" + targetServiceSchema: + $ref: "#/definitions/TargetServiceSchema" + '@type': + description: "Not used in Beijing release" + type: "string" + '@schemaLocation': + description: "Not used in Beijing release" + type: "string" + '@baseType': + description: "Not used in Beijing release" + type: "string" + Service: + description: "Service (to be added, modified, deleted) description" + required: + - "id" + type: "object" + properties: + id: + description: "Identifier of a service instance.\nIt must be valued if orderItem\ + \ action is 'delete' and corresponds to a AAI service.id" + type: "string" + href: + description: "Reference to the Service (useful for delete or modify command).\n\ + Not managed in Beijing release." + type: "string" + name: + description: "Name of the service - When orderItem action is 'add' this name\ + \ will be used in ONAP/SO request as InstaceName." + type: "string" + serviceState: + description: "The lifecycle state of the service requested;\nNot managed in\ + \ Beijing release." + type: "string" + '@type': + description: "To define the service type\nNot managed in Beijing Release" + type: "string" + '@schemaLocation': + description: "The URL to get the resource schema.\nNot managed in Beijing\ + \ Release" + type: "string" + serviceCharacteristic: + type: "array" + items: + $ref: "#/definitions/ServiceCharacteristic" + serviceRelationship: + type: "array" + items: + $ref: "#/definitions/ServiceRelationship" + relatedParty: + type: "array" + items: + $ref: "#/definitions/RelatedParty" + serviceSpecification: + $ref: "#/definitions/ServiceSpecificationRef" + OrderItemRelationship: + description: "Linked order item to the one containing this attribute.\nnbi component\ + \ used this relationship to sort request to ONAP." + required: + - "type" + - "id" + type: "object" + properties: + type: + $ref: "#/definitions/RelationshipType" + id: + description: "Unique identifier of an order item" + type: "string" + ServiceOrderItem: + description: "An identified part of the order. A service order is decomposed into\ + \ one or more order items." + required: + - "id" + - "service" + type: "object" + properties: + id: + description: "Identifier of the line item (generally it is a sequence number\ + \ 01, 02, 03, …)" + type: "string" + action: + $ref: "#/definitions/ActionType" + state: + $ref: "#/definitions/StateType" + percentProgress: + description: "Progress of the delivery in percentage." + type: "string" + '@type': + description: "Used to extend the order item.\nnot used in Beijing relase" + type: "string" + '@schemaLocation': + description: "not used in Beijing relase" + type: "string" + '@baseType': + description: "not used in Beijing relase" + type: "string" + orderItemRelationship: + type: "array" + items: + $ref: "#/definitions/OrderItemRelationship" + service: + $ref: "#/definitions/Service" + orderItemMessage: + type: "array" + items: + $ref: "#/definitions/OrderMessage" + ServiceOrder: + description: "A Service Order is a type of order which can be used to place an\ + \ order between a customer and a service provider or between a service provider\ + \ and a partner and vice versa" + required: + - "id" + type: "object" + properties: + id: + description: "ID created on repository side" + type: "string" + href: + description: "Hyperlink to access the order" + type: "string" + externalId: + description: "ID given by the consumer and only understandable by him (to\ + \ facilitate his searches)" + type: "string" + priority: + description: "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)" + type: "string" + description: + description: "A free-text description of the service order" + type: "string" + category: + description: "Used to categorize the order that can be useful for the OM system\ + \ (e.g. “broadband”, “TVOption”, ...)" + type: "string" + state: + $ref: "#/definitions/StateType" + orderDate: + description: "" + type: "string" + format: "date-time" + completionDateTime: + description: "Date when the order was completed" + type: "string" + format: "date-time" + requestedStartDate: + description: "Order start date wished by the requestor" + type: "string" + format: "date-time" + requestedCompletionDate: + description: "Requested delivery date from the requestor perspective" + type: "string" + format: "date-time" + expectedCompletionDate: + description: "" + type: "string" + format: "date-time" + startDate: + description: "Date when the order was started for processing" + type: "string" + format: "date-time" + '@baseType': + description: "" + type: "string" + '@type': + description: "" + type: "string" + '@schemaLocation': + description: "" + type: "string" + relatedParty: + type: "array" + items: + $ref: "#/definitions/RelatedParty" + orderRelationship: + type: "array" + items: + $ref: "#/definitions/OrderRelationship" + orderItem: + type: "array" + items: + $ref: "#/definitions/ServiceOrderItem" + orderMessage: + type: "array" + items: + $ref: "#/definitions/OrderMessage" + OrderRelationship: + description: "Linked order to the one containing this attribute.\nThis relationship\ + \ is not used to sort ONAP request." + required: + - "id" + type: "object" + properties: + type: + description: "The type of related order, can be : “dependency” if the order\ + \ needs to be “not started” until another order item is complete (a service\ + \ order in this case) or “cross-ref” to keep track of the source order (a\ + \ productOrder)" + type: "string" + id: + description: "The id of the related order" + type: "string" + href: + description: "A hyperlink to the related order" + type: "string" + '@referredType': + description: "Type of the referred order." + type: "string" + TargetServiceSchema: + description: "Target to the schema describing the service spec resource" + required: + - "@type" + - "@schemaLocation" + type: "object" + properties: + '@type': + description: "Indicates the (class) type of resource." + type: "string" + '@schemaLocation': + description: "This field provided a link to the schema describing this REST\ + \ resource." + type: "string" + Value: + description: "Value is a descriptive structure for service characteristic" + type: "object" + properties: + serviceCharacteristicValue: + description: "Value of the characteristic." + type: "string" + CreateServiceOrderItem: + description: "This structure is used in the operation POST for a serviceOrder\ + \ request to describe an item.\nAttribute description is not accurate and should\ + \ be find in the serviceOrderItem class." + required: + - "id" + - "service" + type: "object" + properties: + id: + description: "Identifier of the line item (generally it is a sequence number\ + \ 01, 02, 03, …)" + type: "string" + action: + $ref: "#/definitions/ActionType" + orderItemRelationship: + type: "array" + items: + $ref: "#/definitions/OrderItemRelationship" + service: + $ref: "#/definitions/Service" + CreateServiceOrder: + description: "This structure is used in the operation POST for a serviceOrder\ + \ request.\nAttribute description is not accurate and should be find in the\ + \ serviceOrder class." + type: "object" + properties: + externalId: + description: "ID given by the consumer and only understandable by him (to\ + \ facilitate his searches)" + type: "string" + priority: + description: "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)" + type: "string" + description: + description: "A free-text description of the service order" + type: "string" + category: + description: "Used to categorize the order that can be useful for the OM system\ + \ (e.g. “broadband”, “TVOption”, ...)" + type: "string" + requestedStartDate: + description: "Order start date wished by the requestor" + type: "string" + format: "date-time" + requestedCompletionDate: + description: "Requested delivery date from the requestor perspective" + type: "string" + format: "date-time" + relatedParty: + type: "array" + items: + $ref: "#/definitions/RelatedParty" + orderRelationship: + type: "array" + items: + $ref: "#/definitions/OrderRelationship" + orderItem: + type: "array" + items: + $ref: "#/definitions/CreateServiceOrderItem" + ServiceOrderSummary: + description: "This structure is used to provide a subset of serviceOrder attributes\ + \ to be provided in particular for notification messages" + required: + - "id" + type: "object" + properties: + id: + description: "ID created on repository side" + type: "string" + href: + description: "Hyperlink to access the order" + type: "string" + externalId: + description: "ID given by the consumer and only understandable by him (to\ + \ facilitate his searches)" + type: "string" + state: + $ref: "#/definitions/StateType" + orderDate: + description: "" + type: "string" + format: "date-time" + completionDateTime: + description: "Date when the order was completed" + type: "string" + format: "date-time" + Notification: + description: "Notification structure for a serviceOrdering notification" + required: + - "eventId" + - "eventDate" + - "eventType" + - "event" + type: "object" + properties: + eventId: + description: "" + type: "string" + eventDate: + description: "" + type: "string" + format: "date-time" + eventType: + $ref: "#/definitions/EventType" + event: + $ref: "#/definitions/ServiceOrderSummaryWithItem" + ServiceOrderItemSummary: + description: "Service Order item summary to be used for notification" + required: + - "id" + - "service" + type: "object" + properties: + id: + description: "Identifier of the line item (generally it is a sequence number\ + \ 01, 02, 03, …)" + type: "string" + action: + $ref: "#/definitions/ActionType" + state: + $ref: "#/definitions/StateType" + service: + $ref: "#/definitions/Service" + ServiceOrderSummaryWithItem: + description: "Service order item summary with item description" + required: + - "id" + type: "object" + properties: + id: + description: "ID created on repository side" + type: "string" + href: + description: "Hyperlink to access the order" + type: "string" + externalId: + description: "ID given by the consumer and only understandable by him (to\ + \ facilitate his searches)" + type: "string" + state: + $ref: "#/definitions/StateType" + orderDate: + description: "" + type: "string" + format: "date-time" + completionDateTime: + description: "Date when the order was completed" + type: "string" + format: "date-time" + orderItem: + type: "array" + items: + $ref: "#/definitions/ServiceOrderItemSummary" + OrderMessage: + description: "An optional array of messages associated with the Order" + required: + - "severity" + - "correctionRequired" + type: "object" + properties: + code: + description: "A code associated to this message" + type: "string" + field: + description: "Service Order attribute related to this error message" + type: "string" + messageInformation: + description: "Message related to this order" + type: "string" + severity: + $ref: "#/definitions/SeverityMessage" + correctionRequired: + description: "Indicator that an action is required to allow service order\ + \ fullfilment to follow up" + type: "boolean" |