1 # Copyright (c) 2018 Orange
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.swagger: "2.0"
16 description: "Request the instantiation, deletion or modification of a service\n\nA Service Order is a type\
17 \ of order which can be used to describe a group of operations on service – one\
18 \ service order item per service. An action at the level of the service order\
19 \ item describe the operation to be done on a service (add, delete for example).\
20 \ The service order is triggered from external system such as the BSS system in charge of the product\
21 \ order management to ONAP that will manage the service fulfillment.\n\nList of\
22 \ available subscription for serviceOrdering notifications, see /hub resources\
23 \ for more information:\n\n- ServiceOrderCreationNotification\n- ServiceOrderStateChangeNotification\n\
24 - ServiceOrderItemStateChangeNotification\n\n"
26 title: "ServiceOrder API"
29 url: "https://onap.readthedocs.io"
30 email: "onap-discuss@lists.onap.org"
33 url: "http://www.apache.org/licenses/LICENSE-2.0"
34 x-planned-retirement-date: "205001"
37 url: "/redoc/logo.png"
38 backgroundColor: "#FFFFFF"
39 host: "serverRoot:30274"
40 basePath: "/nbi/api/v4"
45 - "application/json;charset=utf-8"
47 - name: "ServiceOrder"
48 description: "provided by NBI"
49 - name: "Notification"
50 description: "provided by subscribers, which MUST registered by creating a hub resource"
54 last-mod-release: "Frankfurt"
60 - "application/json;charset=utf-8"
62 - "application/json;charset=utf-8"
63 operationId: "serviceOrder_Create"
64 summary: "Create a service order"
65 description: "This operation creates a service order entity.\nThe TMF Open API\
66 \ specification document provides the list of mandatory and non mandatory\
67 \ attributes when creating a ServiceOrder, including any possible rule conditions\
68 \ and applicable default values.\nPOST should be used without specifying the\
69 \ id and the href, the Service Order Management system is in charge of generating\
70 \ the id + href for the ServiceOrder.\n\nIn Beijing Release, NBI will use\
71 \ only POST {{url}}/ecomp/mso/infra/serviceInstances/v4 SO API. This mean\
72 \ that only the 'service-instance' level will be created in AAI. Additional\
73 \ resource like VNF and/OR VF are not created.\n\nIn Casablanca release, NBI\
74 \ has been improved to also be able to use POST {{url}}/e2eServiceInstances/v3\
75 \ SO API. This API is able to instantiate in ONAP E2E service; This is useful\
76 \ for CCVPN and VoLTE UC.\nDepending on the service category defined in SDC,\
77 \ NBI will use one or the other SO API. If category starts with e2e, NBI will\
78 \ use {url}}/e2eServiceInstances/v3 SO API - else it will use {{url}}/ecomp/mso/infra/serviceInstances/v4\
82 - name: "serviceOrder"
87 $ref: "#/definitions/CreateServiceOrder"
95 description: "Created"
97 $ref: "#/definitions/ServiceOrder"
102 - "application/json;charset=utf-8"
103 operationId: "serviceOrder_Find"
104 summary: "List service orders"
105 description: "Retrieve and list service order entities according to given criteria.\n\
106 Only a predefined set of attribute is proposed.\nAttribute selection could\
107 \ be described in the fields attribute."
118 description: "state of the order(s) to be retrieved"
120 - name: "description"
125 - name: "orderDate.gt"
128 description: "order date greather than"
130 - name: "orderDate.lt"
133 description: "order date lower than"
138 description: "this attribute could be used to filter retrieved attribute(s)\
144 description: "The index of the first element to retrieve. Zero is the first\
145 \ element of the collection."
151 description: "The maximum number of elements to retrieve (it can be greater\
152 \ than the actual available number of items)."
161 $ref: "#/definitions/ServiceOrder"
176 - "application/json;charset=utf-8"
177 operationId: "serviceOrder_Get"
178 summary: "Retrieve a service order"
179 description: "This operation retrieves a service order entity. \nAttribute selection\
180 \ is enabled for all first level attributes."
191 description: "Attribute selection"
202 $ref: "#/definitions/ServiceOrder"
208 - "application/json;charset=utf-8"
210 - "application/json;charset=utf-8"
211 operationId: "notification_Create"
212 summary: "NBI will send notification to this operation provided by subscribers"
213 description: "Notification structure depends of the eventType:\n\n- ServiceOrderCreationNotification\n\
214 - ServiceOrderStateChangeNotification\n\n```\n{\n \"eventId\": \"string\"\
215 ,\n \"eventDate\": \"2019-03-12T16:21:27.530Z\",\n \"eventType\": \"string\"\
216 ,\n \"event\": {\n \"id\": \"string\",\n \"href\": \"string\",\n \
217 \ \"externalId\": \"string\",\n \"state\": \"acknowledged\",\n \"orderDate\"\
218 : \"2019-03-12T16:21:27.530Z\",\n \"completionDateTime\": \"2019-03-12T16:21:27.530Z\"\
219 \n }\n}\n```\n\n- ServiceOrderItemStateChangeNotification\n\n```\n{\n \"\
220 eventId\": \"string\",\n \"eventDate\": \"2019-03-12T16:21:44.066Z\",\n \
221 \ \"eventType\": \"string\",\n \"event\": {\n \"id\": \"string\",\n \
222 \ \"href\": \"string\",\n \"externalId\": \"string\",\n \"state\":\
223 \ \"acknowledged\",\n \"orderDate\": \"2019-03-12T16:21:44.066Z\",\n \
224 \ \"completionDateTime\": \"2019-03-12T16:21:44.066Z\",\n \"orderItem\"\
225 : [\n {\n \"id\": \"string\",\n \"action\": \"add\",\n\
226 \ \"state\": \"acknowledged\",\n \"service\": {\n \"\
227 id\": \"string\",\n \"href\": \"string\",\n \"name\": \"\
228 string\",\n \"serviceState\": \"string\",\n \"serviceCharacteristic\"\
229 : [\n {\n \"name\": \"string\",\n \"\
230 valueType\": \"string\",\n \"value\": {\n \"serviceCharacteristicValue\"\
231 : \"string\"\n }\n }\n ],\n \"serviceRelationship\"\
232 : [\n {\n \"type\": \"reliesOn\"\n }\n\
233 \ ],\n \"relatedParty\": [\n {\n \
234 \ \"id\": \"string\",\n \"href\": \"string\",\n \
235 \ \"role\": \"string\",\n \"name\": \"string\",\n \
236 \ \"@referredType\": \"string\"\n }\n ],\n \
237 \ \"serviceSpecification\": {\n \"id\": \"string\",\n \
238 \ \"href\": \"string\",\n \"name\": \"string\",\n \
239 \ \"version\": \"string\",\n }\n }\n }\n ]\n }\n\
243 - name: "Notification"
248 $ref: "#/definitions/Notification"
256 description: "Created"
258 $ref: "#/definitions/Notification"
261 description: "Action type to be describer on the order item.\nmodify is not managed\
262 \ in Beijing release"
270 description: "List of possible state for the order and the orderItem."
283 description: "Relationship type;\nOnly reliesOn is managed in Beijing release."
288 description: "The Type of Event"
291 - "ServiceOrderCreationNotification"
292 - "ServiceOrderStateChangeNotification"
293 - "ServiceOrderItemStateChangeNotification"
295 description: "Enum for Message, information or error"
301 description: "Error code and reason"
308 description: "Application related code (as defined in the API or from a common\
313 description: "Text that explains the reason for error. This can be shown to\
317 description: "Text that provide more details and corrective actions related\
318 \ to the error. This can be shown to a client user"
321 description: "http error code extension like 400-2"
324 description: "url pointing to documentation describing the error"
327 description: "Linked Services to the one instantiate\nnbi component used this\
328 \ relationship to sort request to ONAP."
335 $ref: "#/definitions/RelationshipType"
337 $ref: "#/definitions/Service"
339 description: "Service references"
345 description: "Unique identifier of the service"
348 description: "Reference of the service"
350 ServiceCharacteristic:
351 description: "ServiceCharacteristic"
357 description: "Name of characteristic"
363 $ref: "#/definitions/Value"
365 description: "A related party defines party which are involved in this order and\
366 \ the role they are playing.\nfor Beijing release:\nWith the current version\
367 \ of APIs used from SO and AAI we need to manage a ‘customer’. This customer\
368 \ concept is confusing with Customer BSS concept. We took the following rules\
369 \ to manage the ‘customer’ information:\no\tIt could be provided through a serviceOrder\
370 \ in the service Order a relatedParty with role ‘ONAPcustomer’ should be provided\
371 \ in the serviceOrder header (we will not consider in this release the party\
372 \ at item level); External API component will check if this customer exists\
373 \ and create it in AAI if not.\no\tIf no relatedParty are provided the service\
374 \ will be affected to ‘generic’ customer (dummy customer) – we assume this ‘\
375 generic’ customer always exists."
382 description: "Unique identifier of a related party"
385 description: "An hyperlink to the party - not used in Beijnig release"
388 description: "The role of the related party (e.g. Owner, requester, fullfiller\
389 \ etc).\nONLY 'ONAPcustomer' is considered"
392 description: "Name of the related party"
397 ServiceSpecificationRef:
398 description: "The service specification (these attributes are fetched from the\
405 description: "Unique identifier of the service specification\nThis information\
406 \ will be used to retrieve SDC information + mapped to SO ModelNameVersionIdin\
410 description: "Reference of the service specification\nNot used in Beijing\
414 description: "Name of the service specification\nNot used in Beijing release"
417 description: "Version of the service Specification\nNot used in Beijing release"
420 $ref: "#/definitions/TargetServiceSchema"
422 description: "Not used in Beijing release"
425 description: "Not used in Beijing release"
428 description: "Not used in Beijing release"
431 description: "Service (to be added, modified, deleted) description"
437 description: "Identifier of a service instance.\nIt must be valued if orderItem\
438 \ action is 'delete' and corresponds to a AAI service.id"
441 description: "Business type of the service.\nFor example : 5G"
444 description: "Reference to the Service (useful for delete or modify command).\n\
445 Not managed in Beijing release."
448 description: "Name of the service - When orderItem action is 'add' this name\
449 \ will be used in ONAP/SO request as InstaceName."
452 description: "The lifecycle state of the service requested;\nNot managed in\
456 description: "To define the service type\nNot managed in Beijing Release"
459 description: "The URL to get the resource schema.\nNot managed in Beijing\
462 serviceCharacteristic:
465 $ref: "#/definitions/ServiceCharacteristic"
469 $ref: "#/definitions/ServiceRelationship"
473 $ref: "#/definitions/RelatedParty"
474 serviceSpecification:
475 $ref: "#/definitions/ServiceSpecificationRef"
476 OrderItemRelationship:
477 description: "Linked order item to the one containing this attribute.\nnbi component\
478 \ used this relationship to sort request to ONAP."
485 $ref: "#/definitions/RelationshipType"
487 description: "Unique identifier of an order item"
490 description: "An identified part of the order. A service order is decomposed into\
491 \ one or more order items."
498 description: "Identifier of the line item (generally it is a sequence number\
502 $ref: "#/definitions/ActionType"
504 $ref: "#/definitions/StateType"
506 description: "Progress of the delivery in percentage."
509 description: "Used to extend the order item.\nnot used in Beijing relase"
512 description: "not used in Beijing relase"
515 description: "not used in Beijing relase"
517 orderItemRelationship:
520 $ref: "#/definitions/OrderItemRelationship"
522 $ref: "#/definitions/Service"
526 $ref: "#/definitions/OrderMessage"
528 description: "A Service Order is a type of order which can be used to place an\
529 \ order between a customer and a service provider or between a service provider\
530 \ and a partner and vice versa"
536 description: "ID created on repository side"
539 description: "Hyperlink to access the order"
542 description: "ID given by the consumer and only understandable by him (to\
543 \ facilitate his searches)"
546 description: "A way that can be used by consumers to prioritize orders in\
547 \ Service Order Management system (from 0 to 4 : 0 is the highest priority,\
551 description: "A free-text description of the service order"
554 description: "Used to categorize the order that can be useful for the OM system\
555 \ (e.g. “broadband”, “TVOption”, ...)"
558 $ref: "#/definitions/StateType"
564 description: "Date when the order was completed"
568 description: "Order start date wished by the requestor"
571 requestedCompletionDate:
572 description: "Requested delivery date from the requestor perspective"
575 expectedCompletionDate:
580 description: "Date when the order was started for processing"
595 $ref: "#/definitions/RelatedParty"
599 $ref: "#/definitions/OrderRelationship"
603 $ref: "#/definitions/ServiceOrderItem"
607 $ref: "#/definitions/OrderMessage"
609 description: "Linked order to the one containing this attribute.\nThis relationship\
610 \ is not used to sort ONAP request."
616 description: "The type of related order, can be : “dependency” if the order\
617 \ needs to be “not started” until another order item is complete (a service\
618 \ order in this case) or “cross-ref” to keep track of the source order (a\
622 description: "The id of the related order"
625 description: "A hyperlink to the related order"
628 description: "Type of the referred order."
631 description: "Target to the schema describing the service spec resource"
638 description: "Indicates the (class) type of resource."
641 description: "This field provided a link to the schema describing this REST\
645 description: "Value is a descriptive structure for service characteristic"
648 serviceCharacteristicValue:
649 description: "Value of the characteristic."
651 CreateServiceOrderItem:
652 description: "This structure is used in the operation POST for a serviceOrder\
653 \ request to describe an item.\nAttribute description is not accurate and should\
654 \ be find in the serviceOrderItem class."
661 description: "Identifier of the line item (generally it is a sequence number\
665 $ref: "#/definitions/ActionType"
666 orderItemRelationship:
669 $ref: "#/definitions/OrderItemRelationship"
671 $ref: "#/definitions/Service"
673 description: "This structure is used in the operation POST for a serviceOrder\
674 \ request.\nAttribute description is not accurate and should be find in the\
675 \ serviceOrder class."
679 description: "ID given by the consumer and only understandable by him (to\
680 \ facilitate his searches)"
683 description: "A way that can be used by consumers to prioritize orders in\
684 \ Service Order Management system (from 0 to 4 : 0 is the highest priority,\
688 description: "A free-text description of the service order"
691 description: "Used to categorize the order that can be useful for the OM system\
692 \ (e.g. “broadband”, “TVOption”, ...)"
695 description: "Order start date wished by the requestor"
698 requestedCompletionDate:
699 description: "Requested delivery date from the requestor perspective"
705 $ref: "#/definitions/RelatedParty"
709 $ref: "#/definitions/OrderRelationship"
713 $ref: "#/definitions/CreateServiceOrderItem"
715 description: "This structure is used to provide a subset of serviceOrder attributes\
716 \ to be provided in particular for notification messages"
722 description: "ID created on repository side"
725 description: "Hyperlink to access the order"
728 description: "ID given by the consumer and only understandable by him (to\
729 \ facilitate his searches)"
732 $ref: "#/definitions/StateType"
738 description: "Date when the order was completed"
742 description: "Notification structure for a serviceOrdering notification"
758 $ref: "#/definitions/EventType"
760 $ref: "#/definitions/ServiceOrderSummaryWithItem"
761 ServiceOrderItemSummary:
762 description: "Service Order item summary to be used for notification"
769 description: "Identifier of the line item (generally it is a sequence number\
773 $ref: "#/definitions/ActionType"
775 $ref: "#/definitions/StateType"
777 $ref: "#/definitions/Service"
778 ServiceOrderSummaryWithItem:
779 description: "Service order item summary with item description"
785 description: "ID created on repository side"
788 description: "Hyperlink to access the order"
791 description: "ID given by the consumer and only understandable by him (to\
792 \ facilitate his searches)"
795 $ref: "#/definitions/StateType"
801 description: "Date when the order was completed"
807 $ref: "#/definitions/ServiceOrderItemSummary"
809 description: "An optional array of messages associated with the Order"
812 - "correctionRequired"
816 description: "A code associated to this message"
819 description: "Service Order attribute related to this error message"
822 description: "Message related to this order"
825 $ref: "#/definitions/SeverityMessage"
827 description: "Indicator that an action is required to allow service order\
828 \ fullfilment to follow up"