From 5ed2fc56576271bd09debf9016bf340cc99fe747 Mon Sep 17 00:00:00 2001 From: aosull01 Date: Wed, 19 Feb 2020 18:04:08 +0000 Subject: [PATCH] This is to update swagger as per ONAP style guidelines Issue-ID: EXTAPI-397 Signed-off-by: aosull01 Change-Id: I1d3f2e330cf69102e3f20340b9e073f000dca5ed --- docs/offeredapis/api_serviceCatalog/index.html | 661 +++++++++++ docs/offeredapis/api_serviceCatalog/onap_logo.png | Bin 0 -> 6706 bytes docs/offeredapis/api_serviceOrder/index.html | 804 +++++++++++++ docs/offeredapis/api_serviceOrder/onap_logo.png | Bin 0 -> 6706 bytes docs/offeredapis/api_serviceOrder/swagger.json | 2 +- docs/offeredapis/api_serviceOrder/swagger.yaml | 1252 +++++++++++---------- 6 files changed, 2143 insertions(+), 576 deletions(-) create mode 100644 docs/offeredapis/api_serviceCatalog/index.html create mode 100644 docs/offeredapis/api_serviceCatalog/onap_logo.png create mode 100644 docs/offeredapis/api_serviceOrder/index.html create mode 100644 docs/offeredapis/api_serviceOrder/onap_logo.png diff --git a/docs/offeredapis/api_serviceCatalog/index.html b/docs/offeredapis/api_serviceCatalog/index.html new file mode 100644 index 0000000..96027a2 --- /dev/null +++ b/docs/offeredapis/api_serviceCatalog/index.html @@ -0,0 +1,661 @@ + + + + + + ServiceCatalog API + + + + + + + + + +

ServiceCatalog API (4.1.0)

Download OpenAPI specification:Download

About the ONAP Service Catalog API

The Service Catalog API is based on a subset of the TM Forum 633 Service Catalog Management API.

+

API Overview

General Description

+

This Service Catalog API is used to retrieve the Service Specifications that ONAP supports. As Services are designed and distributed in ONAP SDC, the Service Catalog API allows external systems such as the Business Support Systems (BSS) to discover these Services

+

The Service Design Center (SDC) of ONAP allows for the creation of Services that can be orchestrated by ONAP. ONAP SDC provides the tools to design the Services composition and topology, which is then represented in TOSCA. This Service Catalog API allows a REST API JSON representation of the Service, including the required attributes needed for Service Instantiation of this Service Topology.

+

Relationship and Dependencies

+

This Service Catalog API is related to the TM Forum 633 Service Catalog Management API and also to MEF LSO LEGATO Service Catalog API.

+

This API takes a subset of the Service Catalog Management API, namely the ServiceSpecification resource, and maps this standard resource to the ONAP SDC Service Templates/Topology. By doing this we allow a well known, standardized JSON REST representation of the Service Templates available in ONAP to be potentially ordered via Service Orders.

+

API Structure and Approach

+

The Service Catalog API can be used to get the details of a specific ONAP Service Template, or can be used to search/list the Service Templates that are available.

+

Getting Started with the API (Hello World)

The Service Catalog API is available via two schemes, http and https. For interacting with the API the simplest method is via http. To interact with the this API via https, your Client would be required to load the neccessary https certificate.

+

The default installation of ONAP via OOM, will configure the use of two Node ports for External APIs. NodePorts are used to allow client applications, that run outside of Kubernetes, access to ONAP components deployed by OOM. For this Service Catalog API, the External API Framework has a http Node port of 30274. For https, the Node port is 30292.

+

From outside ONAP, a client can interact with External API by first getting the IP that the NBI docker container is running on, and then using the appropriate nodeport according to the access scheme. For example to access this Service Catalog API to retrieve a list of all Service Specifications available in ONAP you can use http method GET to http://{nbi_ip}:30274/nbi/api/v4/serviceSpecification/

+

SDK quick intro

+

There are many tools that can be used to view and edit this swagger file like swagger editor, Atom and senya. For example this swagger file can be loaded into https://editor.swagger.io/. This UI acts both as an online editor and viewer.

+

How to start the client side implementation

+
    +
  • Code generation, is available via the Generate Client option in the swagger editor. Client stubs can be generated in multiple languages, for example java, go, python etc. These Client stub code can be incorporated in the Application you wish to access the Service Catalog API from.
  • +
+

How to start the server side implementation

+
    +
  • Not applicable, the service side for this API will be the NBI container running the External API Framework Springboot application.
  • +
+

API Description

Includes summary of information drawn from API definitions in OpenAPI / Swagger files

+

Resource Endpoint / Resource Quick Reference

+

GET /serviceSpecification/ : This operation returns a list service specifications from a catalog

+

GET /serviceSpecification/{id} : This operation returns the service specifications from a catalog associated with this id. Note the id maps to the uuid of the SDC Service Template in the SDC catalog

+

GET /serviceSpecification/{id}/specificationInputSchema : This operation returns a service specification Input schema by its id from a catalog. Note again the id corresponds to the uuid of the Service Template in SDC.

+

Data Schema

+

Main API Entities

+

Describe the major entities used in the API

+

The main entity of the API is the ServiceSpecification resource. This entity is the top level entity of the API, and is returned as either a single instance when queried with id, or as JSON arroy of ServiceSpecification entities when queried as a list.

+

The major child enties are relatedParty which points to the designer of the Template in SDC. The resourceSpecification which point to child resources for the Service Template. The serviceSpecCharacteristics entities are used to describe the attributes that can be supplied to instantiate a Service Instance of this Service Template.

+

Payload data structures

+

If any, describe the appropriate data structures that are included within payload of the API.

+

Not applicable

+

Security on the API

+

Authentication; Authorization; Credentials/access token; etc.

+

https certificate required if using https. No authentication on http requests.In production this API should be behind an API Gateway with the necessary authentication

+

Response Codes

+

The meaning of Status Codes & Errors

+

See response codes for each API resource in the API section below

+

Rate Limits and Thresholds

+

Requests per unit time allowed; Pagination

+

No rate limits or thresholds, in production this API should be behind an API Gateway with the necessary limits.

+

Validation constraints

+

Describe any behavioral and structural validation constraints

+

Not applicable

+

Assumptions

+

For example, any Pre/Post conditions

+

For this API to function and return Service Specifications, SDC is required to be running and Service models designed in the SDC catalog

+

API Interactions and Flows

Interaction Examples

+

Illustrate sequence of client calls to this API, possibly based on Use Cases, presented with diagrams, tables, etc

+

The Service Catalog API flow of use can generally follow the sequence below

+

Call ONAP to discover what available services it can offer

+
curl -X GET "http://serverRoot:30274/nbi/api/v4/serviceSpecification/" -H "accept: application/json;charset=utf-8"

Example Response Values

+
[
+  {
+        "id": "0ec83a1f-51e7-44e7-b773-3f37ddb937cd",
+        "name": "EPLServiceTemplate",
+        "invariantUUID": "ddf31f35-8e71-4f5a-a383-4241b87ca7a7",
+        "category": "Network L4+",
+        "distributionStatus": "DISTRIBUTED",
+        "version": "1.0",
+        "lifecycleStatus": "CERTIFIED",
+        "relatedParty": {
+            "id": "jm0007",
+            "role": "lastUpdater"
+        }
+    }
+]

Using the id returned from the list of Service Specifications, drill into any specific Service Specificaton you want to orchestrate/order using

+
curl -X GET "http://serverRoot:30274/nbi/api/v4/serviceSpecification/0ec83a1f-51e7-44e7-b773-3f37ddb937cd" -H "accept: application/json;charset=utf-8"

Example Response Values

+
{
+    "id": "0ec83a1f-51e7-44e7-b773-3f37ddb937cd",
+    "name": "EPLServiceTemplate",
+    "invariantUUID": "ddf31f35-8e71-4f5a-a383-4241b87ca7a7",
+    "toscaModelURL": "/sdc/v1/catalog/services/0ec83a1f-51e7-44e7-b773-3f37ddb937cd/toscaModel",
+    "category": "Network L4+",
+    "distributionStatus": "DISTRIBUTED",
+    "version": "1.0",
+    "lifecycleStatus": "CERTIFIED",
+    "relatedParty": {
+        "id": "jm0007",
+        "name": "Joni Mitchell",
+        "role": "lastUpdater"
+    },
+    "resourceSpecification": [
+        {
+            "id": "ec910118-ba94-4517-98b5-5bc10f277f4a",
+            "version": "1.0",
+            "name": "TestVF_1579291137027",
+            "resourceInstanceName": "TestVF_1579291137027 0",
+            "modelCustomizationName": "TestVF_1579291137027 0",
+            "resourceInvariantUUID": "df329320-fe21-49c2-96a8-7217ac7143de",
+            "resourceType": "VF",
+            "@type": "ONAPresource",
+            "modelCustomizationId": "ad5fb501-e472-4d79-a303-1a4a56c0fa75"
+        }
+    ],
+    "href": "serviceSpecification/0ec83a1f-51e7-44e7-b773-3f37ddb937cd",
+    "attachment": [],
+    "@type": "ONAPservice",
+    "instantiationType": "A-la-carte",
+    "serviceSpecCharacteristic": {
+        "name": "TestService_1579291137027_ServiceCharacteristics",
+        "description": "This object describes all the inputs needed from the client to interact with the TestService_1579291137027 Service Topology",
+        "valueType": "object",
+        "@type": "ONAPServiceCharacteristic",
+        "@schemaLocation": "null",
+        "serviceSpecCharacteristicValue": {
+            "valueType": "object",
+            "@schemaLocation": "/serviceSpecification/0ec83a1f-51e7-44e7-b773-3f37ddb937cd/specificationInputSchema",
+            "@type": "TestService_1579291137027_ServiceCharacteristic"
+        }
+    }
+}

To access Json Schema of the Parameters required to instantiate the Service from this Service Specification

+
curl -X GET "http://serverRoot:30274/nbi/api/v4/serviceSpecification/0ec83a1f-51e7-44e7-b773-3f37ddb937cd/specificationInputSchema" -H "accept: application/json;charset=utf-8"

Example Response Values

+
{
+  "ServiceCharacteristics" : {
+    "required" : [ "mscmevcendpointa_evcendpoint_endPointId", "mscmevcendpointz_evcendpoint_endPointId", "mscmsubscriberunia_subscriberuni_uniIdentifier", "mscmsubscriberuniz_subscriberuni_uniIdentifier" ],
+    "properties" : {
+      "mscmevcendpointa_evcendpoint_map" : {
+        "type" : "string",
+        "description" : ""
+      },
+      "mscmsubscriberunia_subscriberuni_uniIdentifier" : {
+        "type" : "string",
+        "description" : "String that is used to allow the Sub-scriber and Service Provider to uniquely identify the UNI for oper-ations purposes."
+      },
+      "mscmevc0_evc_evcType" : {
+        "type" : "string",
+        "description" : "Point-to-Point, Multipoint-to-Mul-tipoint, or Rooted-Multipoint."
+      },
+      "mscmevcendpointz_evcendpoint_map" : {
+        "type" : "string",
+        "description" : ""
+      },
+      "mscmevcendpointz_evcendpoint_endPointUni" : {
+        "type" : "string",
+        "description" : "Specify the UNI where the EvcEndPoint is located. The EvcEndPoint is said to be at this Uni."
+      },
+      "mscmevcendpointz_evcendpoint_ingressBwp" : {
+        "type" : "string",
+        "description" : ""
+      },
+      "mscmsubscriberuniz_subscriberuni_uniIdentifier" : {
+        "type" : "string",
+        "description" : "String that is used to allow the Sub-scriber and Service Provider to uniquely identify the UNI for oper-ations purposes."
+      },
+      "mscmevcendpointz_evcendpoint_endPointId" : {
+        "type" : "string",
+        "description" : "A string that is used to allow the Subscriber and Service Provider to uniquely identify the EvcEndPoint for operations purposes."
+      },
+      "mscmevcendpointa_evcendpoint_endPointId" : {
+        "type" : "string",
+        "description" : "A string that is used to allow the Subscriber and Service Provider to uniquely identify the EvcEndPoint for operations purposes."
+      },
+      "mscmevcendpointa_evcendpoint_ingressBwp" : {
+        "type" : "string",
+        "description" : ""
+      },
+"mscmevc0_evc_listOfEvcEps" : {
+        "type" : "array",
+        "description" : "A list of EVC EP ID Service Attribute values."
+      },
+      "mscmevc0_evc_evcId" : {
+        "type" : "string",
+        "description" : ""
+      },
+      "mscmevcendpointa_evcendpoint_endPointUni" : {
+        "type" : "string",
+        "description" : "Specify the UNI where the EvcEndPoint is located. The EvcEndPoint is said to be at this Uni."
+      }
+    }
+  }
+

Tutorials

Reference any tutorials or use cases. May use links.

+

To learn how the BBS use case used these APIs, please find the Low Level Designs at: +https://wiki.onap.org/pages/viewpage.action?pageId=48532377

+

API Mapping Details

Includes:

+
    +
  • Mapping between use cases/requirements and API calls. The BBS Use case used the Service Catalog API to learn the details of the Broad Service. This ServiceSpecification was then included in a Product Ordering as a Service Candidate from the BSS system.
  • +
+

Glossary

API Version

+

The version number has major, minor and revision numbers. E.g. v4.1.0 Only the major version number (without the minor number and revision number) is held in the URL. APIs are described with a major version with “v” following the API Name, e.g.: nbi/api/v4/serviceSpecification. The schema associated with a REST API must have its version number aligned with that of the REST API.

+

The major version number is incremented for an incompatible change. The minor version number is incremented for a compatible change. For minor modifications of the API, version numbering must not be updated, provided the following backward compatibility rules are respected:

+
    +
  • New elements in a data type must be optional (minOccurs=0)
  • +
  • Changes in the cardinality of an attribute in a data type must be from mandatory to optional or from lower to greater
  • +
  • New attributes defined in an element must be optional (absence of use=”required”)
  • +
  • If new enumerated values are included, the former ones and its meaning must be kept
  • +
  • If new operations are added, the existing operations must be kept
  • +
  • New parameters added to existing operations must be optional and existing parameters must be kept
  • +
+

For major modifications of the API, not backward compatible and forcing client implementations to be changed, the major version number must be updated.

+

ServiceSpecification

List service specifications

This operation returns service specifications from a catalog. +Only a predefined set of attribute is proposed : Based on SDC limitations, only attributes category and distributionStatus are available for serviceSpecification filtering +Fields attribute could be used to filter attributes retrieved

+
query Parameters
fields
string

Field selection - used to filtering the attributes to be retreived

+
category
string

Service Category (filter)

+
distributionStatus
string

Service distribution status (filter)

+

Responses

200

Ok

+
400

Bad Request

+

List of supported error codes:

+
    +
  • 20: Invalid URL parameter value
  • +
  • 21: Missing body
  • +
  • 22: Invalid body
  • +
  • 23: Missing body field
  • +
  • 24: Invalid body field
  • +
  • 25: Missing header
  • +
  • 26: Invalid header value
  • +
  • 27: Missing query-string parameter
  • +
  • 28: Invalid query-string parameter value
  • +
+
401

Unauthorized

+

List of supported error codes:

+
    +
  • 40: Missing credentials
  • +
  • 41: Invalid credentials
  • +
  • 42: Expired credentials
  • +
+
403

Forbidden

+

List of supported error codes:

+
    +
  • 50: Access denied
  • +
  • 51: Forbidden requester
  • +
  • 52: Forbidden user
  • +
  • 53: Too many requests
  • +
+
404

Not Found

+

List of supported error codes:

+
    +
  • 60: Resource not found
  • +
+
422

Unprocessable entity

+

Functional error

+
500

Internal Server Error

+

List of supported error codes:

+
    +
  • 1: Internal error
  • +
+
503

Service Unavailable

+

List of supported error codes:

+
    +
  • 5: The service is temporarily unavailable
  • +
  • 6: Orange API is over capacity, retry later !
  • +
+
get /serviceSpecification
http://serverRoot:30274/nbi/api/v4/serviceSpecification
https://serverRoot:30274/nbi/api/v4/serviceSpecification

Response samples

Content type
application/json;charset=utf-8
Copy
Expand all Collapse all
[
  • {
    }
]

Retrieve a service specification

This operation returns a service specification by its id from a catalog. Attribute selection is enabled using the fields attribute.

+
path Parameters
id
required
string

The Id of the ServiceSpecification

+
query Parameters
fields
string

Attribute selection

+

Responses

200

Ok

+
400

Bad Request

+

List of supported error codes:

+
    +
  • 20: Invalid URL parameter value
  • +
  • 21: Missing body
  • +
  • 22: Invalid body
  • +
  • 23: Missing body field
  • +
  • 24: Invalid body field
  • +
  • 25: Missing header
  • +
  • 26: Invalid header value
  • +
  • 27: Missing query-string parameter
  • +
  • 28: Invalid query-string parameter value
  • +
+
401

Unauthorized

+

List of supported error codes:

+
    +
  • 40: Missing credentials
  • +
  • 41: Invalid credentials
  • +
  • 42: Expired credentials
  • +
+
403

Forbidden

+

List of supported error codes:

+
    +
  • 50: Access denied
  • +
  • 51: Forbidden requester
  • +
  • 52: Forbidden user
  • +
  • 53: Too many requests
  • +
+
404

Not Found

+

List of supported error codes:

+
    +
  • 60: Resource not found
  • +
+
422

Unprocessable entity

+

Functional error

+
500

Internal Server Error

+

List of supported error codes:

+
    +
  • 1: Internal error
  • +
+
503

Service Unavailable

+

List of supported error codes:

+
    +
  • 5: The service is temporarily unavailable
  • +
  • 6: Orange API is over capacity, retry later !
  • +
+
get /serviceSpecification/{id}
http://serverRoot:30274/nbi/api/v4/serviceSpecification/{id}
https://serverRoot:30274/nbi/api/v4/serviceSpecification/{id}

Response samples

Content type
application/json;charset=utf-8
Copy
Expand all Collapse all
{
  • "id": "string",
  • "href": "string",
  • "name": "string",
  • "description": "string",
  • "@type": "ONAPservice",
  • "@schemaLocation": "string",
  • "@baseType": "string",
  • "invariantUUID": "string",
  • "toscaModelURL": "string",
  • "toscaResourceName": "string",
  • "category": "string",
  • "subcategory": "string",
  • "distributionStatus": "DISTRIBUTION_NOT_APPROVED",
  • "version": "string",
  • "lifecycleStatus": "NOT_CERTIFIED_CHECKOUT",
  • "targetServiceSchema":
    {
    },
  • "attachment":
    [
    ],
  • "relatedParty":
    [
    ],
  • "resourceSpecification":
    [
    ],
  • "serviceSpecCharacteristic":
    [
    ]
}

Retrieve a service specification Input Schema

This operation returns a service specification Input schema by its id from a catalog. Attribute selection is enabled using the fields attribute.

+
path Parameters
id
required
string

The Id of the ServiceSpecification

+
query Parameters
fields
string

Attribute selection

+

Responses

200

Ok

+
400

Bad Request

+

List of supported error codes:

+
    +
  • 20: Invalid URL parameter value
  • +
  • 21: Missing body
  • +
  • 22: Invalid body
  • +
  • 23: Missing body field
  • +
  • 24: Invalid body field
  • +
  • 25: Missing header
  • +
  • 26: Invalid header value
  • +
  • 27: Missing query-string parameter
  • +
  • 28: Invalid query-string parameter value
  • +
+
401

Unauthorized

+

List of supported error codes:

+
    +
  • 40: Missing credentials
  • +
  • 41: Invalid credentials
  • +
  • 42: Expired credentials
  • +
+
403

Forbidden

+

List of supported error codes:

+
    +
  • 50: Access denied
  • +
  • 51: Forbidden requester
  • +
  • 52: Forbidden user
  • +
  • 53: Too many requests
  • +
+
404

Not Found

+

List of supported error codes:

+
    +
  • 60: Resource not found
  • +
+
422

Unprocessable entity

+

Functional error

+
500

Internal Server Error

+

List of supported error codes:

+
    +
  • 1: Internal error
  • +
+
503

Service Unavailable

+

List of supported error codes:

+
    +
  • 5: The service is temporarily unavailable
  • +
  • 6: Orange API is over capacity, retry later !
  • +
+
get /serviceSpecification/{id}/specificationInputSchema
http://serverRoot:30274/nbi/api/v4/serviceSpecification/{id}/specificationInputSchema
https://serverRoot:30274/nbi/api/v4/serviceSpecification/{id}/specificationInputSchema

Response samples

Content type
application/json;charset=utf-8
Copy
Expand all Collapse all
{
  • "ServiceCharacteristics":
    {
    }
}
+ + + + diff --git a/docs/offeredapis/api_serviceCatalog/onap_logo.png b/docs/offeredapis/api_serviceCatalog/onap_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..796e1bd108f8aa41866451494614121b1549011a GIT binary patch literal 6706 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 IM6N<$f{d;@f&c&j literal 0 HcmV?d00001 diff --git a/docs/offeredapis/api_serviceOrder/index.html b/docs/offeredapis/api_serviceOrder/index.html new file mode 100644 index 0000000..651aa8f --- /dev/null +++ b/docs/offeredapis/api_serviceOrder/index.html @@ -0,0 +1,804 @@ + + + + + + ServiceOrder API + + + + + + + + + +

ServiceOrder API (4.1.0)

Download OpenAPI specification:Download

About the ONAP Service Order API

The Service Catalog API is based on the TM Forum 641 Service Ordering API.

+

API Overview

General Description

+

The Service Order API is used to request the instantiation, deletion or modification of a service

+

A Service Order is a type of order which can be used to describe a group of operations on service – one service order item per service. An action at the level of the service order item describes the operation to be completed on a service (add, delete for example). The service order is triggered from external system such as the BSS system in charge of the product order management to ONAP that will manage the service fulfillment.

+

List of available subscription for serviceOrdering notifications, see /hub resources swagger for more detailed information:

+
    +
  • ServiceOrderCreationNotification
  • +
  • ServiceOrderStateChangeNotification
  • +
  • ServiceOrderItemStateChangeNotification
  • +
+

Relationship and Dependencies

+

This Service Ordering API is related to the TM Forum 641 Service Ordering API and also to MEF LSO LEGATO Service Ordering API.

+

This API takes a subset of the Service Ordering API formal specification and maps it to the internals of ONAP APIS. By doing this we allow a well known, standardized JSON REST representation of the Service Templates available in ONAP to be ordered via well known Service Order formet. The main interaction for a Service Order are with ONAP Service Orchestrator (SO) for Service Instanctiation, ONAP Service and Design Center (SDC) for validating the order is for a known ONAP Service and AAI to make sure that for a service deltion or modification order, that the service instance is a valid Service instance in the ONAP Inventory

+

API Structure and Approach

+

The Service Ordering API can be used to order a Service from ONAP for any specific ONAP Service Template offering in the ONAP Service Catalog, or it can be used to modify or delete a Service Instance that has been already created in ONAP inventory.

+

Getting Started with the API (Hello World)

The Service Ordering API is available via two schemes, http and https. For interacting with the API the simplest method is via http. To interact with this API via https, your Client would be required to load the neccessary https certificate.

+

The default installation of ONAP via OOM, will configure the use of two Node ports for External APIs. NodePorts are used to allow client applications, that run outside of Kubernetes, access to ONAP components deployed by OOM. For this Service Ordering API, the External API Framework has a http Node port of 30274. For https, the Node port is 30292.

+

From outside ONAP, a client can interact with External API by first getting the IP that the NBI docker container is running on, and then using the appropriate nodeport according to the access scheme. For example to retrieve a list of all Service orders in ONAP SOM you can use http method GET to http://{nbi_ip}:30274/nbi/api/v4/serviceOrder/

+

SDK quick intro

+

There are many tools that can be used to view and edit this swagger file like swagger editor, Atom and senya. For example this swagger file can be loaded into https://editor.swagger.io/. This UI acts both as an online editor and viewer.

+

How to start the client side implementation

+
    +
  • Code generation, is available via the Generate Client option in the swagger editor. Client stubs can be generated in multiple languages, for example java, go, python etc. These Client stub code can be incorporated in the Application you wish to access the Service Ordering API from.
  • +
+

How to start the server side implementation

+
    +
  • Not applicable, the service side for this API will be the NBI container running the External API Framework Springboot application.
  • +
+

API Description

Includes summary of information drawn from API definitions in OpenAPI / Swagger files

+

Resource Endpoint / Resource Quick Reference

+

GET /serviceOrder/ : This operation returns a list service orders from External API Framework DB

+

GET /serviceOrder/{id} : This operation returns the service order associated with this id.

+

POST /serviceOrder : This operation is used to create a service order, with one of the following three action types, add, delete or modify. Note add is used to Instantiate a new service Instance of the specified Service Template ( SDC uuid) when NBI makes calls to SO to execute the instantiation workflows. The delete action is used to delete a specified service instance id ( AAI instance id ), while action modify is to modify the service instance.

+

Data Schema

+

Main API Entities

+

Describe the major entities used in the API

+

The main entity of the API is the ServiceOrder resource. This entity is the top level entity of the API, and is returned as either a single instance when queried with id, or as JSON arroy of ServiceOrder entities when queried as a list.

+

The major child enties are relatedParty which points to the customer who is ordering the Service. This customer is related to the customer in the AAI where this servie instance for the order is placed. The orderItem is an array, meaning more that one service can be orders within the one Serice Order. i.e. each orderItem corresponds to one service instance. The serviceSpecCharacteristics entities are used to describe the attributes that can be supplied to instantiate a Service Instance of this Service Template.

+

Payload data structures

+

If any, describe the appropriate data structures that are included within payload of the API.

+

Not applicable

+

Security on the API

+

Authentication; Authorization; Credentials/access token; etc.

+

https certificate required if using https. No authentication on http requests.In production this API should be behind an API Gateway with the necessary authentication

+

Response Codes

+

The meaning of Status Codes & Errors

+

See response codes for each API resource in the API section below

+

Rate Limits and Thresholds

+

Requests per unit time allowed; Pagination

+

No rate limits or thresholds, in production this API should be behind an API Gateway with the necessary limits.

+

Validation constraints

+

Describe any behavioral and structural validation constraints

+

Not applicable

+

Assumptions

+

For example, any Pre/Post conditions

+

For this API to function, SDC is required to be running and Service models designed in the SDC catalog. SO, AAI and DMaaP also need to be running as a minimum.

+

API Interactions and Flows

Interaction Examples

+

Illustrate sequence of client calls to this API, possibly based on Use Cases, presented with diagrams, tables, etc

+

The Service Order API flow of use can generally follow the sequence below

+

Call ONAP to discover what available services it can offer

+
curl -X GET "http://serverRoot:30274/nbi/api/v4/serviceSpecification/" -H "accept: application/json;charset=utf-8"

Example Response Values

+
[
+  {
+        "id": "0ec83a1f-51e7-44e7-b773-3f37ddb937cd",
+        "name": "EPLServiceTemplate",
+        "invariantUUID": "ddf31f35-8e71-4f5a-a383-4241b87ca7a7",
+        "category": "Network L4+",
+        "distributionStatus": "DISTRIBUTED",
+        "version": "1.0",
+        "lifecycleStatus": "CERTIFIED",
+        "relatedParty": {
+            "id": "jm0007",
+            "role": "lastUpdater"
+        }
+    }
+]

Using the id returned from the list of Service Specifications, pick one you would like to order an instance of. + Using the instantation serviceCharacteristics from the Catalog construct the Service Order POST body associated with this template. + Then POST the Service Order with an action of add to ask ONAP to instanctiate a Service Instance.

+

Example POST Service Order Body

+
{
+        "externalId": "BBS_BSS_TrackindId8888",
+        "priority": "1",
+        "description": "Service Order for a new HSIA CFS",
+        "category": "Network Service",
+        "relatedParty": [
+            {
+                "id": "BBSCustomer",
+                "href": null,
+                "role": "ONAPcustomer",
+                "name": "EnterpriseA",
+                "@referredType": "Consumer"
+            }
+        ],
+        "orderItem": [
+            {
+                "id": "1",
+                "action": "add",
+                "service": {
+                    "name": "BBS_E2E_Service",
+                    "serviceState": "active",
+                    "serviceCharacteristic": [
+                        {
+                            "name": "ont_ont_serial_num",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "ont_ont_serial_num"
+                            }
+                        },
+                        {
+                            "name": "edgeinternetprofile_ip_rg_mac_addr",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "rg_mac_addr"
+                            }
+                        },
+                        {
+                            "name": "edgeinternetprofile_ip_downstream_speed",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "10"
+                            }
+                        },
+                        {
+                            "name": "ont_ont_mac_addr",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "ont_ont_mac_addr"
+                            }
+                        },
+                        {
+                            "name": "edgeinternetprofile_ip_access_id",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "profile_ip_access_id"
+                            }
+                        },
+                        {
+                            "name": "ont_ont_swVersion",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "ont_ont_swVersion"
+                            }
+                        },
+                        {
+                            "name": "ont_ont_manufacturer",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "ont_ont_manufacturer"
+                            }
+                        },
+                        {
+                            "name": "edgeinternetprofile_ip_service_type",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "service_type"
+                            }
+                        },
+                        {
+                            "name": "ont_ont_pnf_name",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "ont_ont_pnf_name"
+                            }
+                        },
+                        {
+                            "name": "edgeinternetprofile_ip_upstream_speed",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "10"
+                            }
+                        },
+                        {
+                            "name": "ont_ont_nf_type",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "ont_ont_nf_type"
+                            }
+                        }
+                    ],
+                    "serviceSpecification": {
+                        "id": "90b476bc-0988-4417-bae9-41b376f0e1b6"
+                    }
+                }
+            }
+        ]
+}

You can then track the Service Order progress using the returned order id from the POST response. Use GET with the returned order id GET /nbi/api/v4/serviceOrder/5c988c98e3caf4000173cb4d

+

Example GET Service Order by specific order id Response

+

+{
+        "id": "5c988c98e3caf4000173cb4d",
+        "href": "serviceOrder/5c988c98e3caf4000173cb4d",
+        "externalId": "BBS_BSS_TrackindId6979",
+        "priority": "1",
+        "description": "Service Order for a new HSIA CFS",
+        "category": "Network Service",
+        "state": "inProgress",
+        "orderDate": "2019-03-25T08:08:56.297Z",
+        "completionDateTime": null,
+        "expectedCompletionDate": null,
+        "requestedStartDate": null,
+        "requestedCompletionDate": null,
+        "startDate": null,
+        "@baseType": null,
+        "@type": null,
+        "@schemaLocation": null,
+        "relatedParty": [
+            {
+                "id": "testcustomer5",
+                "href": null,
+                "role": "ONAPcustomer",
+                "name": "EnterpriseA",
+                "@referredType": "Consumer"
+            }
+        ],
+        "orderRelationship": null,
+        "orderItem": [
+            {
+                "orderMessage": [],
+                "id": "1",
+                "action": "add",
+                "state": "inProgress",
+                "percentProgress": "0",
+                "@type": null,
+                "@schemaLocation": null,
+                "@baseType": null,
+                "orderItemRelationship": [],
+                "service": {
+                    "id": "ee8ddf86-b653-4377-809a-05811fea8501",
+                    "href": null,
+                    "name": "BBS_E2E_Service",
+                    "serviceState": "active",
+                    "@type": null,
+                    "@schemaLocation": null,
+                    "serviceCharacteristic": [
+                        {
+                            "name": "ont_ont_serial_num",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "ont_ont_serial_num"
+                            }
+                        },
+                        {
+                            "name": "edgeinternetprofile_ip_rg_mac_addr",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "rg_mac_addr"
+                            }
+                        },
+                        {
+                            "name": "edgeinternetprofile_ip_downstream_speed",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "10"
+                            }
+                        },
+                        {
+                            "name": "ont_ont_mac_addr",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "ont_ont_mac_addr"
+                            }
+                        },
+                        {
+                            "name": "edgeinternetprofile_ip_access_id",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "profile_ip_access_id"
+                            }
+                        },
+                        {
+                            "name": "ont_ont_swVersion",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "ont_ont_swVersion"
+                            }
+                        },
+                        {
+                            "name": "ont_ont_manufacturer",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "ont_ont_manufacturer"
+                            }
+                        },
+                        {
+                            "name": "edgeinternetprofile_ip_service_type",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "service_type"
+                            }
+                        },
+                        {
+                            "name": "ont_ont_pnf_name",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "ont_ont_pnf_name"
+                            }
+                        },
+                        {
+                            "name": "edgeinternetprofile_ip_upstream_speed",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "10"
+                            }
+                        },
+                        {
+                            "name": "ont_ont_nf_type",
+                            "valueType": null,
+                            "value": {
+                                "@type": null,
+                                "@schemaLocation": null,
+                                "serviceCharacteristicValue": "ont_ont_nf_type"
+                            }
+                        }
+                    ],
+                    "serviceRelationship": null,
+                    "relatedParty": null,
+                    "serviceSpecification": {
+                        "id": "90b476bc-0988-4417-bae9-41b376f0e1b6",
+                        "href": null,
+                        "name": null,
+                        "version": null,
+                        "targetServiceSchema": null,
+                        "@type": null,
+                        "@schemaLocation": null,
+                        "@baseType": null
+                    }
+                },
+                "orderItemMessage": []
+            }
+        ],
+        "orderMessage": null
+}

ServiceOrder

provided by NBI

+

Create a service order

This operation creates a service order entity. +The TMF Open API specification document provides the list of mandatory and non mandatory attributes when creating a ServiceOrder, including any possible rule conditions and applicable default values. +POST should be used without specifying the id and the href, the Service Order Management system is in charge of generating the id + href for the ServiceOrder.

+

In Beijing Release, NBI will use only POST {{url}}/ecomp/mso/infra/serviceInstances/v4 SO API. This mean that only the 'service-instance' level will be created in AAI. Additional resource like VNF and/OR VF are not created.

+

In Casablanca release, NBI has been improved to also be able to use POST {{url}}/e2eServiceInstances/v3 SO API. This API is able to instantiate in ONAP E2E service; This is useful for CCVPN and VoLTE UC. +Depending on the service category defined in SDC, NBI will use one or the other SO API. If category starts with e2e, NBI will use {url}}/e2eServiceInstances/v3 SO API - else it will use {{url}}/ecomp/mso/infra/serviceInstances/v4 SO API.

+
header Parameters
Target
string
Request Body schema: application/json;charset=utf-8
externalId
string

ID given by the consumer and only understandable by him (to facilitate his searches)

+
priority
string

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)

+
description
string

A free-text description of the service order

+
category
string

Used to categorize the order that can be useful for the OM system (e.g. “broadband”, “TVOption”, ...)

+
requestedStartDate
string <date-time>

Order start date wished by the requestor

+
requestedCompletionDate
string <date-time>

Requested delivery date from the requestor perspective

+
relatedParty
Array of objects (RelatedParty)
orderRelationship
Array of objects (OrderRelationship)
orderItem
Array of objects (CreateServiceOrderItem)

Responses

201

Created

+
post /serviceOrder
http://serverRoot:30274/nbi/api/v4/serviceOrder
https://serverRoot:30274/nbi/api/v4/serviceOrder

Request samples

Content type
application/json;charset=utf-8
Copy
Expand all Collapse all
{
  • "externalId": "string",
  • "priority": "string",
  • "description": "string",
  • "category": "string",
  • "requestedStartDate": "2020-02-19T17:42:23Z",
  • "requestedCompletionDate": "2020-02-19T17:42:23Z",
  • "relatedParty":
    [
    ],
  • "orderRelationship":
    [
    ],
  • "orderItem":
    [
    ]
}

Response samples

Content type
application/json;charset=utf-8
Copy
Expand all Collapse all
{
  • "id": "string",
  • "href": "string",
  • "externalId": "string",
  • "priority": "string",
  • "description": "string",
  • "category": "string",
  • "state": "acknowledged",
  • "orderDate": "2020-02-19T17:42:23Z",
  • "completionDateTime": "2020-02-19T17:42:23Z",
  • "requestedStartDate": "2020-02-19T17:42:23Z",
  • "requestedCompletionDate": "2020-02-19T17:42:23Z",
  • "expectedCompletionDate": "2020-02-19T17:42:23Z",
  • "startDate": "2020-02-19T17:42:23Z",
  • "@baseType": "string",
  • "@type": "string",
  • "@schemaLocation": "string",
  • "relatedParty":
    [
    ],
  • "orderRelationship":
    [
    ],
  • "orderItem":
    [
    ],
  • "orderMessage":
    [
    ]
}

List service orders

Retrieve and list service order entities according to given criteria. +Only a predefined set of attribute is proposed. +Attribute selection could be described in the fields attribute.

+
query Parameters
externalId
string
state
string

state of the order(s) to be retrieved

+
description
string
orderDate.gt
string

order date greather than

+
orderDate.lt
string

order date lower than

+
fields
string

this attribute could be used to filter retrieved attribute(s) and/or sort SO.

+
offset
integer <int32>

The index of the first element to retrieve. Zero is the first element of the collection.

+
limit
integer <int32>

The maximum number of elements to retrieve (it can be greater than the actual available number of items).

+

Responses

200

Ok

+
get /serviceOrder
http://serverRoot:30274/nbi/api/v4/serviceOrder
https://serverRoot:30274/nbi/api/v4/serviceOrder

Response samples

Content type
application/json;charset=utf-8
Copy
Expand all Collapse all
[
  • {
    }
]

Retrieve a service order

This operation retrieves a service order entity. +Attribute selection is enabled for all first level attributes.

+
path Parameters
id
required
string
query Parameters
fields
string

Attribute selection

+
header Parameters
Target
string

Responses

200

Ok

+
get /serviceOrder/{id}
http://serverRoot:30274/nbi/api/v4/serviceOrder/{id}
https://serverRoot:30274/nbi/api/v4/serviceOrder/{id}

Response samples

Content type
application/json;charset=utf-8
Copy
Expand all Collapse all
{
  • "id": "string",
  • "href": "string",
  • "externalId": "string",
  • "priority": "string",
  • "description": "string",
  • "category": "string",
  • "state": "acknowledged",
  • "orderDate": "2020-02-19T17:42:23Z",
  • "completionDateTime": "2020-02-19T17:42:23Z",
  • "requestedStartDate": "2020-02-19T17:42:23Z",
  • "requestedCompletionDate": "2020-02-19T17:42:23Z",
  • "expectedCompletionDate": "2020-02-19T17:42:23Z",
  • "startDate": "2020-02-19T17:42:23Z",
  • "@baseType": "string",
  • "@type": "string",
  • "@schemaLocation": "string",
  • "relatedParty":
    [
    ],
  • "orderRelationship":
    [
    ],
  • "orderItem":
    [
    ],
  • "orderMessage":
    [
    ]
}

Notification

provided by subscribers, which MUST registered by creating a hub resource

+

NBI will send notification to this operation provided by subscribers

Notification structure depends of the eventType:

+
    +
  • ServiceOrderCreationNotification
  • +
  • ServiceOrderStateChangeNotification
  • +
+
{
+  "eventId": "string",
+  "eventDate": "2019-03-12T16:21:27.530Z",
+  "eventType": "string",
+  "event": {
+    "id": "string",
+    "href": "string",
+    "externalId": "string",
+    "state": "acknowledged",
+    "orderDate": "2019-03-12T16:21:27.530Z",
+    "completionDateTime": "2019-03-12T16:21:27.530Z"
+  }
+}
    +
  • ServiceOrderItemStateChangeNotification
  • +
+
{
+  "eventId": "string",
+  "eventDate": "2019-03-12T16:21:44.066Z",
+  "eventType": "string",
+  "event": {
+    "id": "string",
+    "href": "string",
+    "externalId": "string",
+    "state": "acknowledged",
+    "orderDate": "2019-03-12T16:21:44.066Z",
+    "completionDateTime": "2019-03-12T16:21:44.066Z",
+    "orderItem": [
+      {
+        "id": "string",
+        "action": "add",
+        "state": "acknowledged",
+        "service": {
+          "id": "string",
+          "href": "string",
+          "name": "string",
+          "serviceState": "string",
+          "serviceCharacteristic": [
+            {
+              "name": "string",
+              "valueType": "string",
+              "value": {
+                "serviceCharacteristicValue": "string"
+              }
+            }
+          ],
+          "serviceRelationship": [
+            {
+              "type": "reliesOn"
+            }
+          ],
+          "relatedParty": [
+            {
+              "id": "string",
+              "href": "string",
+              "role": "string",
+              "name": "string",
+              "@referredType": "string"
+            }
+          ],
+          "serviceSpecification": {
+            "id": "string",
+            "href": "string",
+            "name": "string",
+            "version": "string",
+          }
+        }
+      }
+    ]
+  }
+}
header Parameters
Target
string
Request Body schema: application/json;charset=utf-8
eventId
required
string
eventDate
required
string <date-time>
eventType
required
string (EventType)
Enum: "ServiceOrderCreationNotification" "ServiceOrderStateChangeNotification" "ServiceOrderItemStateChangeNotification"

The Event Type

+
event
required
object (ServiceOrderSummaryWithItem)

Service order item summary with item description

+

Responses

201

Created

+
post /notification
http://serverRoot:30274/nbi/api/v4/notification
https://serverRoot:30274/nbi/api/v4/notification

Request samples

Content type
application/json;charset=utf-8
Copy
Expand all Collapse all
{
  • "eventId": "string",
  • "eventDate": "2020-02-19T17:42:23Z",
  • "eventType": "ServiceOrderCreationNotification",
  • "event":
    {
    }
}

Response samples

Content type
application/json;charset=utf-8
Copy
Expand all Collapse all
{
  • "eventId": "string",
  • "eventDate": "2020-02-19T17:42:23Z",
  • "eventType": "ServiceOrderCreationNotification",
  • "event":
    {
    }
}
+ + + + diff --git a/docs/offeredapis/api_serviceOrder/onap_logo.png b/docs/offeredapis/api_serviceOrder/onap_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..796e1bd108f8aa41866451494614121b1549011a GIT binary patch literal 6706 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 IM6N<$f{d;@f&c&j literal 0 HcmV?d00001 diff --git a/docs/offeredapis/api_serviceOrder/swagger.json b/docs/offeredapis/api_serviceOrder/swagger.json index f5fbf38..94b0d61 100644 --- a/docs/offeredapis/api_serviceOrder/swagger.json +++ b/docs/offeredapis/api_serviceOrder/swagger.json @@ -1,7 +1,7 @@ { "swagger": "2.0", "info": { - "description": "Request the instantiation, deletion or modification 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 describes the operation to be completed on a service (add, delete for example). The service order is triggered from external system such as 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", + "description": "# About the ONAP Service Order API\n The Service Catalog API is based on the TM Forum 641 Service Ordering API.\n ## API Overview\n### General Description \n The Service Order API is used to request the instantiation, deletion or modification 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 describes the operation to be completed on a service (add, delete for example). The service order is triggered from external system such as 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 swagger for more detailed information:\n\n- ServiceOrderCreationNotification\n- ServiceOrderStateChangeNotification\n- ServiceOrderItemStateChangeNotification\n\n### Relationship and Dependencies\n This Service Ordering API is related to the TM Forum 641 Service Ordering API and also to MEF LSO LEGATO Service Ordering API.\n\nThis API takes a subset of the Service Ordering API formal specification and maps it to the internals of ONAP APIS. By doing this we allow a well known, standardized JSON REST representation of the Service Templates available in ONAP to be ordered via well known Service Order formet. The main interaction for a Service Order are with ONAP Service Orchestrator (SO) for Service Instanctiation, ONAP Service and Design Center (SDC) for validating the order is for a known ONAP Service and AAI to make sure that for a service deltion or modification order, that the service instance is a valid Service instance in the ONAP Inventory\n\n### API Structure and Approach\nThe Service Ordering API can be used to order a Service from ONAP for any specific ONAP Service Template offering in the ONAP Service Catalog, or it can be used to modify or delete a Service Instance that has been already created in ONAP inventory. \n## Getting Started with the API (Hello World)\nThe Service Ordering API is available via two schemes, http and https. For interacting with the API the simplest method is via http. To interact with this API via https, your Client would be required to load the neccessary https certificate. \n\nThe default installation of ONAP via OOM, will configure the use of two Node ports for External APIs. NodePorts are used to allow client applications, that run outside of Kubernetes, access to ONAP components deployed by OOM. For this Service Ordering API, the External API Framework has a http Node port of 30274. For https, the Node port is 30292.\n\n From outside ONAP, a client can interact with External API by first getting the IP that the NBI docker container is running on, and then using the appropriate nodeport according to the access scheme. For example to retrieve a list of all Service orders in ONAP SOM you can use http method GET to http://{nbi_ip}:30274/nbi/api/v4/serviceOrder/ \n### SDK quick intro\nThere are many tools that can be used to view and edit this swagger file like swagger editor, Atom and senya. For example this swagger file can be loaded into https://editor.swagger.io/. This UI acts both as an online editor and viewer. \n### How to start the client side implementation\n* Code generation, is available via the Generate Client option in the swagger editor. Client stubs can be generated in multiple languages, for example java, go, python etc. These Client stub code can be incorporated in the Application you wish to access the Service Ordering API from.\n\n### How to start the server side implementation\n* Not applicable, the service side for this API will be the NBI container running the External API Framework Springboot application.\n\n## API Description\nIncludes summary of information drawn from API definitions in OpenAPI / Swagger files\n### Resource Endpoint / Resource Quick Reference\nGET /serviceOrder/ : This operation returns a list service orders from External API Framework DB\n\nGET /serviceOrder/{id} : This operation returns the service order associated with this id.\n\n POST /serviceOrder : This operation is used to create a service order, with one of the following three action types, add, delete or modify. Note add is used to Instantiate a new service Instance of the specified Service Template ( SDC uuid) when NBI makes calls to SO to execute the instantiation workflows. The delete action is used to delete a specified service instance id ( AAI instance id ), while action modify is to modify the service instance.\n\n### Data Schema\n#### Main API Entities\nDescribe the major entities used in the API\n\nThe main entity of the API is the ServiceOrder resource. This entity is the top level entity of the API, and is returned as either a single instance when queried with id, or as JSON arroy of ServiceOrder entities when queried as a list.\n\nThe major child enties are relatedParty which points to the customer who is ordering the Service. This customer is related to the customer in the AAI where this servie instance for the order is placed. The orderItem is an array, meaning more that one service can be orders within the one Serice Order. i.e. each orderItem corresponds to one service instance. The serviceSpecCharacteristics entities are used to describe the attributes that can be supplied to instantiate a Service Instance of this Service Template.\n#### Payload data structures\nIf any, describe the appropriate data structures that are included within payload of the API.\n\nNot applicable\n### Security on the API\nAuthentication; Authorization; Credentials/access token; etc.\n\n https certificate required if using https. No authentication on http requests.In production this API should be behind an API Gateway with the necessary authentication\n### Response Codes\nThe meaning of Status Codes & Errors\n\nSee response codes for each API resource in the API section below\n### Rate Limits and Thresholds\nRequests per unit time allowed; Pagination\n\n No rate limits or thresholds, in production this API should be behind an API Gateway with the necessary limits.\n### Validation constraints\nDescribe any behavioral and structural validation constraints\n\nNot applicable\n### Assumptions\nFor example, any Pre/Post conditions\n\n For this API to function, SDC is required to be running and Service models designed in the SDC catalog. SO, AAI and DMaaP also need to be running as a minimum. \n## API Interactions and Flows\n### Interaction Examples\nIllustrate sequence of client calls to this API, possibly based on Use Cases, presented with diagrams, tables, etc\n\nThe Service Order API flow of use can generally follow the sequence below\n\n\n#### Call ONAP to discover what available services it can offer\n```\ncurl -X GET \"http://serverRoot:30274/nbi/api/v4/serviceSpecification/\" -H \"accept: application/json;charset=utf-8\"\n```\n#### Example Response Values\n```\n[\n {\r\n \"id\": \"0ec83a1f-51e7-44e7-b773-3f37ddb937cd\",\r\n \"name\": \"EPLServiceTemplate\",\r\n \"invariantUUID\": \"ddf31f35-8e71-4f5a-a383-4241b87ca7a7\",\r\n \"category\": \"Network L4+\",\r\n \"distributionStatus\": \"DISTRIBUTED\",\r\n \"version\": \"1.0\",\r\n \"lifecycleStatus\": \"CERTIFIED\",\r\n \"relatedParty\": {\r\n \"id\": \"jm0007\",\r\n \"role\": \"lastUpdater\"\r\n }\r\n }\n]\n```\n\nUsing the id returned from the list of Service Specifications, pick one you would like to order an instance of.\n Using the instantation serviceCharacteristics from the Catalog construct the Service Order POST body associated with this template.\n Then POST the Service Order with an action of add to ask ONAP to instanctiate a Service Instance.\n\n#### Example POST Service Order Body\n\n```\n{\r\n \"externalId\": \"BBS_BSS_TrackindId8888\",\r\n \"priority\": \"1\",\r\n \"description\": \"Service Order for a new HSIA CFS\",\r\n \"category\": \"Network Service\",\r\n \"relatedParty\": [\r\n {\r\n \"id\": \"BBSCustomer\",\r\n \"href\": null,\r\n \"role\": \"ONAPcustomer\",\r\n \"name\": \"EnterpriseA\",\r\n \"@referredType\": \"Consumer\"\r\n }\r\n ],\r\n \"orderItem\": [\r\n {\r\n \"id\": \"1\",\r\n \"action\": \"add\",\r\n \"service\": {\r\n \"name\": \"BBS_E2E_Service\",\r\n \"serviceState\": \"active\",\r\n \"serviceCharacteristic\": [\r\n {\r\n \"name\": \"ont_ont_serial_num\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_serial_num\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_rg_mac_addr\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"rg_mac_addr\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_downstream_speed\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"10\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_mac_addr\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_mac_addr\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_access_id\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"profile_ip_access_id\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_swVersion\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_swVersion\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_manufacturer\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_manufacturer\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_service_type\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"service_type\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_pnf_name\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_pnf_name\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_upstream_speed\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"10\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_nf_type\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_nf_type\"\r\n }\r\n }\r\n ],\r\n \"serviceSpecification\": {\r\n \"id\": \"90b476bc-0988-4417-bae9-41b376f0e1b6\"\r\n }\r\n }\r\n }\r\n ]\r\n}\n```\n\n\n#### You can then track the Service Order progress using the returned order id from the POST response. Use GET with the returned order id GET /nbi/api/v4/serviceOrder/5c988c98e3caf4000173cb4d\n\n#### Example GET Service Order by specific order id Response\n```\n\n{\r\n \"id\": \"5c988c98e3caf4000173cb4d\",\r\n \"href\": \"serviceOrder\/5c988c98e3caf4000173cb4d\",\r\n \"externalId\": \"BBS_BSS_TrackindId6979\",\r\n \"priority\": \"1\",\r\n \"description\": \"Service Order for a new HSIA CFS\",\r\n \"category\": \"Network Service\",\r\n \"state\": \"inProgress\",\r\n \"orderDate\": \"2019-03-25T08:08:56.297Z\",\r\n \"completionDateTime\": null,\r\n \"expectedCompletionDate\": null,\r\n \"requestedStartDate\": null,\r\n \"requestedCompletionDate\": null,\r\n \"startDate\": null,\r\n \"@baseType\": null,\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"relatedParty\": [\r\n {\r\n \"id\": \"testcustomer5\",\r\n \"href\": null,\r\n \"role\": \"ONAPcustomer\",\r\n \"name\": \"EnterpriseA\",\r\n \"@referredType\": \"Consumer\"\r\n }\r\n ],\r\n \"orderRelationship\": null,\r\n \"orderItem\": [\r\n {\r\n \"orderMessage\": [],\r\n \"id\": \"1\",\r\n \"action\": \"add\",\r\n \"state\": \"inProgress\",\r\n \"percentProgress\": \"0\",\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"@baseType\": null,\r\n \"orderItemRelationship\": [],\r\n \"service\": {\r\n \"id\": \"ee8ddf86-b653-4377-809a-05811fea8501\",\r\n \"href\": null,\r\n \"name\": \"BBS_E2E_Service\",\r\n \"serviceState\": \"active\",\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristic\": [\r\n {\r\n \"name\": \"ont_ont_serial_num\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_serial_num\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_rg_mac_addr\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"rg_mac_addr\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_downstream_speed\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"10\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_mac_addr\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_mac_addr\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_access_id\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"profile_ip_access_id\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_swVersion\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_swVersion\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_manufacturer\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_manufacturer\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_service_type\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"service_type\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_pnf_name\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_pnf_name\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_upstream_speed\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"10\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_nf_type\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_nf_type\"\r\n }\r\n }\r\n ],\r\n \"serviceRelationship\": null,\r\n \"relatedParty\": null,\r\n \"serviceSpecification\": {\r\n \"id\": \"90b476bc-0988-4417-bae9-41b376f0e1b6\",\r\n \"href\": null,\r\n \"name\": null,\r\n \"version\": null,\r\n \"targetServiceSchema\": null,\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"@baseType\": null\r\n }\r\n },\r\n \"orderItemMessage\": []\r\n }\r\n ],\r\n \"orderMessage\": null\r\n}\n```\n\n", "version": "4.1.0", "title": "ServiceOrder API", "contact": { diff --git a/docs/offeredapis/api_serviceOrder/swagger.yaml b/docs/offeredapis/api_serviceOrder/swagger.yaml index 8c8633c..43e4ba6 100644 --- a/docs/offeredapis/api_serviceOrder/swagger.yaml +++ b/docs/offeredapis/api_serviceOrder/swagger.yaml @@ -1,5 +1,5 @@ # Copyright (c) 2018 Orange -# +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -11,819 +11,921 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License.swagger: "2.0" -swagger: "2.0" +swagger: '2.0' info: - description: "Request the instantiation, deletion or modification 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, delete for example).\ - \ The service order is triggered from external system such as 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.1.0" - title: "ServiceOrder API" + description: "# About the ONAP Service Order API\n The Service Catalog API is based on the TM Forum 641 Service Ordering API.\n ## API Overview\n### General Description \n The Service Order API is used to request the instantiation, deletion or modification 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 describes the operation to be completed on a service (add, delete for example). The service order is triggered from external system such as 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 swagger for more detailed information:\n\n- ServiceOrderCreationNotification\n- ServiceOrderStateChangeNotification\n- ServiceOrderItemStateChangeNotification\n\n### Relationship and Dependencies\n This Service Ordering API is related to the TM Forum 641 Service Ordering API and also to MEF LSO LEGATO Service Ordering API.\n\nThis API takes a subset of the Service Ordering API formal specification and maps it to the internals of ONAP APIS. By doing this we allow a well known, standardized JSON REST representation of the Service Templates available in ONAP to be ordered via well known Service Order formet. The main interaction for a Service Order are with ONAP Service Orchestrator (SO) for Service Instanctiation, ONAP Service and Design Center (SDC) for validating the order is for a known ONAP Service and AAI to make sure that for a service deltion or modification order, that the service instance is a valid Service instance in the ONAP Inventory\n\n### API Structure and Approach\nThe Service Ordering API can be used to order a Service from ONAP for any specific ONAP Service Template offering in the ONAP Service Catalog, or it can be used to modify or delete a Service Instance that has been already created in ONAP inventory. \n## Getting Started with the API (Hello World)\nThe Service Ordering API is available via two schemes, http and https. For interacting with the API the simplest method is via http. To interact with this API via https, your Client would be required to load the neccessary https certificate. \n\nThe default installation of ONAP via OOM, will configure the use of two Node ports for External APIs. NodePorts are used to allow client applications, that run outside of Kubernetes, access to ONAP components deployed by OOM. For this Service Ordering API, the External API Framework has a http Node port of 30274. For https, the Node port is 30292.\n\n From outside ONAP, a client can interact with External API by first getting the IP that the NBI docker container is running on, and then using the appropriate nodeport according to the access scheme. For example to retrieve a list of all Service orders in ONAP SOM you can use http method GET to http://{nbi_ip}:30274/nbi/api/v4/serviceOrder/ \n### SDK quick intro\nThere are many tools that can be used to view and edit this swagger file like swagger editor, Atom and senya. For example this swagger file can be loaded into https://editor.swagger.io/. This UI acts both as an online editor and viewer. \n### How to start the client side implementation\n* Code generation, is available via the Generate Client option in the swagger editor. Client stubs can be generated in multiple languages, for example java, go, python etc. These Client stub code can be incorporated in the Application you wish to access the Service Ordering API from.\n\n### How to start the server side implementation\n* Not applicable, the service side for this API will be the NBI container running the External API Framework Springboot application.\n\n## API Description\nIncludes summary of information drawn from API definitions in OpenAPI / Swagger files\n### Resource Endpoint / Resource Quick Reference\nGET /serviceOrder/ : This operation returns a list service orders from External API Framework DB\n\nGET /serviceOrder/{id} : This operation returns the service order associated with this id.\n\n POST /serviceOrder : This operation is used to create a service order, with one of the following three action types, add, delete or modify. Note add is used to Instantiate a new service Instance of the specified Service Template ( SDC uuid) when NBI makes calls to SO to execute the instantiation workflows. The delete action is used to delete a specified service instance id ( AAI instance id ), while action modify is to modify the service instance.\n\n### Data Schema\n#### Main API Entities\nDescribe the major entities used in the API\n\nThe main entity of the API is the ServiceOrder resource. This entity is the top level entity of the API, and is returned as either a single instance when queried with id, or as JSON arroy of ServiceOrder entities when queried as a list.\n\nThe major child enties are relatedParty which points to the customer who is ordering the Service. This customer is related to the customer in the AAI where this servie instance for the order is placed. The orderItem is an array, meaning more that one service can be orders within the one Serice Order. i.e. each orderItem corresponds to one service instance. The serviceSpecCharacteristics entities are used to describe the attributes that can be supplied to instantiate a Service Instance of this Service Template.\n#### Payload data structures\nIf any, describe the appropriate data structures that are included within payload of the API.\n\nNot applicable\n### Security on the API\nAuthentication; Authorization; Credentials/access token; etc.\n\n https certificate required if using https. No authentication on http requests.In production this API should be behind an API Gateway with the necessary authentication\n### Response Codes\nThe meaning of Status Codes & Errors\n\nSee response codes for each API resource in the API section below\n### Rate Limits and Thresholds\nRequests per unit time allowed; Pagination\n\n No rate limits or thresholds, in production this API should be behind an API Gateway with the necessary limits.\n### Validation constraints\nDescribe any behavioral and structural validation constraints\n\nNot applicable\n### Assumptions\nFor example, any Pre/Post conditions\n\n For this API to function, SDC is required to be running and Service models designed in the SDC catalog. SO, AAI and DMaaP also need to be running as a minimum. \n## API Interactions and Flows\n### Interaction Examples\nIllustrate sequence of client calls to this API, possibly based on Use Cases, presented with diagrams, tables, etc\n\nThe Service Order API flow of use can generally follow the sequence below\n\n\n#### Call ONAP to discover what available services it can offer\n```\ncurl -X GET \"http://serverRoot:30274/nbi/api/v4/serviceSpecification/\" -H \"accept: application/json;charset=utf-8\"\n```\n#### Example Response Values\n```\n[\n {\r\n \"id\": \"0ec83a1f-51e7-44e7-b773-3f37ddb937cd\",\r\n \"name\": \"EPLServiceTemplate\",\r\n \"invariantUUID\": \"ddf31f35-8e71-4f5a-a383-4241b87ca7a7\",\r\n \"category\": \"Network L4+\",\r\n \"distributionStatus\": \"DISTRIBUTED\",\r\n \"version\": \"1.0\",\r\n \"lifecycleStatus\": \"CERTIFIED\",\r\n \"relatedParty\": {\r\n \"id\": \"jm0007\",\r\n \"role\": \"lastUpdater\"\r\n }\r\n }\n]\n```\n\nUsing the id returned from the list of Service Specifications, pick one you would like to order an instance of.\n Using the instantation serviceCharacteristics from the Catalog construct the Service Order POST body associated with this template.\n Then POST the Service Order with an action of add to ask ONAP to instanctiate a Service Instance.\n\n#### Example POST Service Order Body\n\n```\n{\r\n \"externalId\": \"BBS_BSS_TrackindId8888\",\r\n \"priority\": \"1\",\r\n \"description\": \"Service Order for a new HSIA CFS\",\r\n \"category\": \"Network Service\",\r\n \"relatedParty\": [\r\n {\r\n \"id\": \"BBSCustomer\",\r\n \"href\": null,\r\n \"role\": \"ONAPcustomer\",\r\n \"name\": \"EnterpriseA\",\r\n \"@referredType\": \"Consumer\"\r\n }\r\n ],\r\n \"orderItem\": [\r\n {\r\n \"id\": \"1\",\r\n \"action\": \"add\",\r\n \"service\": {\r\n \"name\": \"BBS_E2E_Service\",\r\n \"serviceState\": \"active\",\r\n \"serviceCharacteristic\": [\r\n {\r\n \"name\": \"ont_ont_serial_num\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_serial_num\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_rg_mac_addr\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"rg_mac_addr\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_downstream_speed\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"10\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_mac_addr\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_mac_addr\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_access_id\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"profile_ip_access_id\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_swVersion\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_swVersion\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_manufacturer\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_manufacturer\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_service_type\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"service_type\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_pnf_name\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_pnf_name\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_upstream_speed\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"10\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_nf_type\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_nf_type\"\r\n }\r\n }\r\n ],\r\n \"serviceSpecification\": {\r\n \"id\": \"90b476bc-0988-4417-bae9-41b376f0e1b6\"\r\n }\r\n }\r\n }\r\n ]\r\n}\n```\n\n\n#### You can then track the Service Order progress using the returned order id from the POST response. Use GET with the returned order id GET /nbi/api/v4/serviceOrder/5c988c98e3caf4000173cb4d\n\n#### Example GET Service Order by specific order id Response\n```\n\n{\r\n \"id\": \"5c988c98e3caf4000173cb4d\",\r\n \"href\": \"serviceOrder/5c988c98e3caf4000173cb4d\",\r\n \"externalId\": \"BBS_BSS_TrackindId6979\",\r\n \"priority\": \"1\",\r\n \"description\": \"Service Order for a new HSIA CFS\",\r\n \"category\": \"Network Service\",\r\n \"state\": \"inProgress\",\r\n \"orderDate\": \"2019-03-25T08:08:56.297Z\",\r\n \"completionDateTime\": null,\r\n \"expectedCompletionDate\": null,\r\n \"requestedStartDate\": null,\r\n \"requestedCompletionDate\": null,\r\n \"startDate\": null,\r\n \"@baseType\": null,\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"relatedParty\": [\r\n {\r\n \"id\": \"testcustomer5\",\r\n \"href\": null,\r\n \"role\": \"ONAPcustomer\",\r\n \"name\": \"EnterpriseA\",\r\n \"@referredType\": \"Consumer\"\r\n }\r\n ],\r\n \"orderRelationship\": null,\r\n \"orderItem\": [\r\n {\r\n \"orderMessage\": [],\r\n \"id\": \"1\",\r\n \"action\": \"add\",\r\n \"state\": \"inProgress\",\r\n \"percentProgress\": \"0\",\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"@baseType\": null,\r\n \"orderItemRelationship\": [],\r\n \"service\": {\r\n \"id\": \"ee8ddf86-b653-4377-809a-05811fea8501\",\r\n \"href\": null,\r\n \"name\": \"BBS_E2E_Service\",\r\n \"serviceState\": \"active\",\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristic\": [\r\n {\r\n \"name\": \"ont_ont_serial_num\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_serial_num\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_rg_mac_addr\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"rg_mac_addr\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_downstream_speed\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"10\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_mac_addr\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_mac_addr\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_access_id\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"profile_ip_access_id\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_swVersion\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_swVersion\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_manufacturer\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_manufacturer\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_service_type\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"service_type\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_pnf_name\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_pnf_name\"\r\n }\r\n },\r\n {\r\n \"name\": \"edgeinternetprofile_ip_upstream_speed\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"10\"\r\n }\r\n },\r\n {\r\n \"name\": \"ont_ont_nf_type\",\r\n \"valueType\": null,\r\n \"value\": {\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"serviceCharacteristicValue\": \"ont_ont_nf_type\"\r\n }\r\n }\r\n ],\r\n \"serviceRelationship\": null,\r\n \"relatedParty\": null,\r\n \"serviceSpecification\": {\r\n \"id\": \"90b476bc-0988-4417-bae9-41b376f0e1b6\",\r\n \"href\": null,\r\n \"name\": null,\r\n \"version\": null,\r\n \"targetServiceSchema\": null,\r\n \"@type\": null,\r\n \"@schemaLocation\": null,\r\n \"@baseType\": null\r\n }\r\n },\r\n \"orderItemMessage\": []\r\n }\r\n ],\r\n \"orderMessage\": null\r\n}\n```\n\n" + version: 4.1.0 + title: ServiceOrder API contact: - name: "ONAP" - url: "https://onap.readthedocs.io" - email: "onap-discuss@lists.onap.org" + name: ONAP + url: 'https://onap.readthedocs.io' + email: onap-discuss@lists.onap.org license: - name: "Apache 2.0" - url: "http://www.apache.org/licenses/LICENSE-2.0" - x-planned-retirement-date: "205001" - x-component: "NBI" + name: Apache 2.0 + url: 'http://www.apache.org/licenses/LICENSE-2.0' + x-planned-retirement-date: '205001' + x-component: NBI x-logo: - url: "/redoc/logo.png" - backgroundColor: "#FFFFFF" -host: "serverRoot:30274" -basePath: "/nbi/api/v4" + url: /redoc/logo.png + backgroundColor: '#FFFFFF' +host: 'serverRoot:30274' +basePath: /nbi/api/v4 schemes: -- "http" -- "https" + - http + - https produces: -- "application/json;charset=utf-8" + - 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" + - name: ServiceOrder + description: provided by NBI + - name: Notification + description: 'provided by subscribers, which MUST registered by creating a hub resource' paths: x-interface: - api-version: "4.1.0" - last-mod-release: "Frankfurt" + api-version: 4.1.0 + last-mod-release: Frankfurt /serviceOrder: post: tags: - - "ServiceOrder" + - ServiceOrder consumes: - - "application/json;charset=utf-8" + - application/json;charset=utf-8 produces: - - "application/json;charset=utf-8" - operationId: "serviceOrder_Create" - 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." + - application/json;charset=utf-8 + operationId: serviceOrder_Create + summary: Create a service order + description: >- + This operation creates a service order entity. + + The TMF Open API specification document provides the list of mandatory + and non mandatory attributes when creating a ServiceOrder, including any + possible rule conditions and applicable default values. + + POST should be used without specifying the id and the href, the Service + Order Management system is in charge of generating the id + href for the + ServiceOrder. + + + In Beijing Release, NBI will use only POST + {{url}}/ecomp/mso/infra/serviceInstances/v4 SO API. This mean that only + the 'service-instance' level will be created in AAI. Additional resource + like VNF and/OR VF are not created. + + + In Casablanca release, NBI has been improved to also be able to use POST + {{url}}/e2eServiceInstances/v3 SO API. This API is able to instantiate + in ONAP E2E service; This is useful for CCVPN and VoLTE UC. + + Depending on the service category defined in SDC, NBI will use one or + the other SO API. If category starts with e2e, NBI will use + {url}}/e2eServiceInstances/v3 SO API - else it will use + {{url}}/ecomp/mso/infra/serviceInstances/v4 SO API. deprecated: false parameters: - - name: "serviceOrder" - required: true - in: "body" - description: "" - schema: - $ref: "#/definitions/CreateServiceOrder" - - name: "Target" - required: false - in: "header" - description: "" - type: "string" + - name: serviceOrder + required: true + in: body + description: '' + schema: + $ref: '#/definitions/CreateServiceOrder' + - name: Target + required: false + in: header + description: '' + type: string responses: - "201": - description: "Created" + '201': + description: Created schema: - $ref: "#/definitions/ServiceOrder" + $ref: '#/definitions/ServiceOrder' get: tags: - - "ServiceOrder" + - ServiceOrder produces: - - "application/json;charset=utf-8" - operationId: "serviceOrder_Find" - 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." + - application/json;charset=utf-8 + operationId: serviceOrder_Find + summary: List service orders + description: |- + Retrieve and list service order entities according to given criteria. + Only a predefined set of attribute is proposed. + Attribute 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" + - 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" + '200': + description: Ok schema: - type: "array" + type: array items: - $ref: "#/definitions/ServiceOrder" + $ref: '#/definitions/ServiceOrder' headers: X-Total-Count: - description: "" - type: "integer" - format: "int32" + description: '' + type: integer + format: int32 X-Result-Count: - description: "" - type: "integer" - format: "int32" - /serviceOrder/{id}: + description: '' + type: integer + format: int32 + '/serviceOrder/{id}': get: tags: - - "ServiceOrder" + - ServiceOrder produces: - - "application/json;charset=utf-8" - operationId: "serviceOrder_Get" - summary: "Retrieve a service order" - description: "This operation retrieves a service order entity. \nAttribute selection\ - \ is enabled for all first level attributes." + - application/json;charset=utf-8 + operationId: serviceOrder_Get + summary: Retrieve a service order + description: |- + This operation retrieves a service order entity. + Attribute selection is enabled for all first level attributes. deprecated: false parameters: - - name: "id" - required: true - in: "path" - description: "" - type: "string" - - name: "fields" - required: false - in: "query" - description: "Attribute selection" - type: "string" - - name: "Target" - required: false - in: "header" - description: "" - type: "string" + - name: id + required: true + in: path + description: '' + type: string + - name: fields + required: false + in: query + description: Attribute selection + type: string + - name: Target + required: false + in: header + description: '' + type: string responses: - "200": - description: "Ok" + '200': + description: Ok schema: - $ref: "#/definitions/ServiceOrder" + $ref: '#/definitions/ServiceOrder' /notification: post: tags: - - "Notification" + - Notification consumes: - - "application/json;charset=utf-8" + - application/json;charset=utf-8 produces: - - "application/json;charset=utf-8" - operationId: "notification_Create" - 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```" + - application/json;charset=utf-8 + operationId: notification_Create + summary: NBI will send notification to this operation provided by subscribers + description: |- + Notification structure depends of the eventType: + + - ServiceOrderCreationNotification + - ServiceOrderStateChangeNotification + + ``` + { + "eventId": "string", + "eventDate": "2019-03-12T16:21:27.530Z", + "eventType": "string", + "event": { + "id": "string", + "href": "string", + "externalId": "string", + "state": "acknowledged", + "orderDate": "2019-03-12T16:21:27.530Z", + "completionDateTime": "2019-03-12T16:21:27.530Z" + } + } + ``` + + - ServiceOrderItemStateChangeNotification + + ``` + { + "eventId": "string", + "eventDate": "2019-03-12T16:21:44.066Z", + "eventType": "string", + "event": { + "id": "string", + "href": "string", + "externalId": "string", + "state": "acknowledged", + "orderDate": "2019-03-12T16:21:44.066Z", + "completionDateTime": "2019-03-12T16:21:44.066Z", + "orderItem": [ + { + "id": "string", + "action": "add", + "state": "acknowledged", + "service": { + "id": "string", + "href": "string", + "name": "string", + "serviceState": "string", + "serviceCharacteristic": [ + { + "name": "string", + "valueType": "string", + "value": { + "serviceCharacteristicValue": "string" + } + } + ], + "serviceRelationship": [ + { + "type": "reliesOn" + } + ], + "relatedParty": [ + { + "id": "string", + "href": "string", + "role": "string", + "name": "string", + "@referredType": "string" + } + ], + "serviceSpecification": { + "id": "string", + "href": "string", + "name": "string", + "version": "string", + } + } + } + ] + } + } + ``` deprecated: false parameters: - - name: "Notification" - required: true - in: "body" - description: "" - schema: - $ref: "#/definitions/Notification" - - name: "Target" - required: false - in: "header" - description: "" - type: "string" + - name: Notification + required: true + in: body + description: '' + schema: + $ref: '#/definitions/Notification' + - name: Target + required: false + in: header + description: '' + type: string responses: - "201": - description: "Created" + '201': + description: Created schema: - $ref: "#/definitions/Notification" + $ref: '#/definitions/Notification' definitions: ActionType: - description: "Action type to be describer on the order item.\nmodify is not managed\ - \ in Beijing release" - type: "string" + description: |- + Action type to be describer on the order item. + modify is not managed in Beijing release + type: string enum: - - "add" - - "modify" - - "delete" - - "noChange" + - add + - modify + - delete + - noChange StateType: - description: "List of possible state for the order and the orderItem." - type: "string" + description: List of possible state for the order and the orderItem. + type: string enum: - - "acknowledged" - - "rejected" - - "pending" - - "held" - - "inProgress" - - "cancelled" - - "completed" - - "failed" - - "partial" + - acknowledged + - rejected + - pending + - held + - inProgress + - cancelled + - completed + - failed + - partial RelationshipType: - description: "Relationship type;\nOnly reliesOn is managed in Beijing release." - type: "string" + description: |- + Relationship type; + Only reliesOn is managed in Beijing release. + type: string enum: - - "reliesOn" + - reliesOn EventType: - description: "The Type of Event" - type: "string" + description: The Event Type + type: string enum: - - "ServiceOrderCreationNotification" - - "ServiceOrderStateChangeNotification" - - "ServiceOrderItemStateChangeNotification" + - ServiceOrderCreationNotification + - ServiceOrderStateChangeNotification + - ServiceOrderItemStateChangeNotification SeverityMessage: - description: "Enum for Message, information or error" - type: "string" + description: 'Message Severity, either information or error' + type: string enum: - - "information" - - "error" + - information + - error Error: - description: "Error code and reason" + description: Error code and reason required: - - "code" - - "reason" - type: "object" + - code + - reason + type: object properties: code: - description: "Application related code (as defined in the API or from a common\ - \ list)" - type: "integer" - format: "int32" + 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" + 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" + 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" + description: http error code extension like 400-2 + type: string referenceError: - description: "url pointing to documentation describing the error" - type: "string" + 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." + description: |- + Linked Services to the one instantiate + nbi component used this relationship to sort request to ONAP. required: - - "type" - - "service" - type: "object" + - type + - service + type: object properties: type: - $ref: "#/definitions/RelationshipType" + $ref: '#/definitions/RelationshipType' service: - $ref: "#/definitions/Service" + $ref: '#/definitions/Service' ServiceRef: - description: "Service references" + description: Service references required: - - "id" - type: "object" + - id + type: object properties: id: - description: "Unique identifier of the service" - type: "string" + description: Unique identifier of the service + type: string href: - description: "Reference of the service" - type: "string" + description: Reference of the service + type: string ServiceCharacteristic: - description: "ServiceCharacteristic" + description: ServiceCharacteristic required: - - "name" - type: "object" + - name + type: object properties: name: - description: "Name of characteristic" - type: "string" + description: Name of characteristic + type: string valueType: - description: "" - type: "string" + description: '' + type: string value: - $ref: "#/definitions/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." + 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" + - id + - role + type: object properties: id: - description: "Unique identifier of a related party" - type: "string" + description: Unique identifier of a related party + type: string href: - description: "An hyperlink to the party - not used in Beijnig release" - type: "string" + 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" + description: |- + The role of the related party (e.g. Owner, requester, fullfiller etc). + ONLY 'ONAPcustomer' is considered + type: string name: - description: "Name of the related party" - type: "string" + description: Name of the related party + type: string '@referredType': - description: "" - type: "string" + description: '' + type: string ServiceSpecificationRef: - description: "The service specification (these attributes are fetched from the\ - \ catalogue)." + description: >- + The service specification (these attributes are fetched from the + catalogue). required: - - "id" - type: "object" + - 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" + description: >- + Unique identifier of the service specification + + This 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" + description: |- + Reference of the service specification + Not used in Beijing release. + type: string name: - description: "Name of the service specification\nNot used in Beijing release" - type: "string" + description: |- + Name of the service specification + Not used in Beijing release + type: string version: - description: "Version of the service Specification\nNot used in Beijing release" - type: "string" + description: |- + Version of the service Specification + Not used in Beijing release + type: string targetServiceSchema: - $ref: "#/definitions/TargetServiceSchema" + $ref: '#/definitions/TargetServiceSchema' '@type': - description: "Not used in Beijing release" - type: "string" + description: Not used in Beijing release + type: string '@schemaLocation': - description: "Not used in Beijing release" - type: "string" + description: Not used in Beijing release + type: string '@baseType': - description: "Not used in Beijing release" - type: "string" + description: Not used in Beijing release + type: string Service: - description: "Service (to be added, modified, deleted) description" + description: 'Service (to be added, modified, deleted) description' required: - - "id" - type: "object" + - 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" + description: >- + Identifier of a service instance. + + It must be valued if orderItem action is 'delete' and corresponds to a + AAI service.id + type: string serviceType: - description: "Business type of the service.\nFor example : 5G" - type: "string" + description: |- + Business type of the service. + For example : 5G + type: string href: - description: "Reference to the Service (useful for delete or modify command).\n\ - Not managed in Beijing release." - type: "string" + description: |- + Reference to the Service (useful for delete or modify command). + 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" + 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" + description: |- + The lifecycle state of the service requested; + Not managed in Beijing release. + type: string '@type': - description: "To define the service type\nNot managed in Beijing Release" - type: "string" + description: |- + To define the service type + Not managed in Beijing Release + type: string '@schemaLocation': - description: "The URL to get the resource schema.\nNot managed in Beijing\ - \ Release" - type: "string" + description: |- + The URL to get the resource schema. + Not managed in Beijing Release + type: string serviceCharacteristic: - type: "array" + type: array items: - $ref: "#/definitions/ServiceCharacteristic" + $ref: '#/definitions/ServiceCharacteristic' serviceRelationship: - type: "array" + type: array items: - $ref: "#/definitions/ServiceRelationship" + $ref: '#/definitions/ServiceRelationship' relatedParty: - type: "array" + type: array items: - $ref: "#/definitions/RelatedParty" + $ref: '#/definitions/RelatedParty' serviceSpecification: - $ref: "#/definitions/ServiceSpecificationRef" + $ref: '#/definitions/ServiceSpecificationRef' OrderItemRelationship: - description: "Linked order item to the one containing this attribute.\nnbi component\ - \ used this relationship to sort request to ONAP." + description: |- + Linked order item to the one containing this attribute. + nbi component used this relationship to sort request to ONAP. required: - - "type" - - "id" - type: "object" + - type + - id + type: object properties: type: - $ref: "#/definitions/RelationshipType" + $ref: '#/definitions/RelationshipType' id: - description: "Unique identifier of an order item" - type: "string" + 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." + description: >- + An identified part of the order. A service order is decomposed into one or + more order items. required: - - "id" - - "service" - type: "object" + - id + - service + type: object properties: id: - description: "Identifier of the line item (generally it is a sequence number\ - \ 01, 02, 03, …)" - type: "string" + description: >- + Identifier of the line item (generally it is a sequence number 01, 02, + 03, …) + type: string action: - $ref: "#/definitions/ActionType" + $ref: '#/definitions/ActionType' state: - $ref: "#/definitions/StateType" + $ref: '#/definitions/StateType' percentProgress: - description: "Progress of the delivery in percentage." - type: "string" + description: Progress of the delivery in percentage. + type: string '@type': - description: "Used to extend the order item.\nnot used in Beijing relase" - type: "string" + description: |- + Used to extend the order item. + not used in Beijing relase + type: string '@schemaLocation': - description: "not used in Beijing relase" - type: "string" + description: not used in Beijing relase + type: string '@baseType': - description: "not used in Beijing relase" - type: "string" + description: not used in Beijing relase + type: string orderItemRelationship: - type: "array" + type: array items: - $ref: "#/definitions/OrderItemRelationship" + $ref: '#/definitions/OrderItemRelationship' service: - $ref: "#/definitions/Service" + $ref: '#/definitions/Service' orderItemMessage: - type: "array" + type: array items: - $ref: "#/definitions/OrderMessage" + $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" + 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" + - id + type: object properties: id: - description: "ID created on repository side" - type: "string" + description: ID created on repository side + type: string href: - description: "Hyperlink to access the order" - type: "string" + 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" + 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: >- + 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" + 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" + description: >- + Used to categorize the order that can be useful for the OM system + (e.g. “broadband”, “TVOption”, ...) + type: string state: - $ref: "#/definitions/StateType" + $ref: '#/definitions/StateType' orderDate: - description: "" - type: "string" - format: "date-time" + description: '' + type: string + format: date-time completionDateTime: - description: "Date when the order was completed" - type: "string" - format: "date-time" + 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" + 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" + description: Requested delivery date from the requestor perspective + type: string + format: date-time expectedCompletionDate: - description: "" - type: "string" - format: "date-time" + description: '' + type: string + format: date-time startDate: - description: "Date when the order was started for processing" - type: "string" - format: "date-time" + description: Date when the order was started for processing + type: string + format: date-time '@baseType': - description: "" - type: "string" + description: '' + type: string '@type': - description: "" - type: "string" + description: '' + type: string '@schemaLocation': - description: "" - type: "string" + description: '' + type: string relatedParty: - type: "array" + type: array items: - $ref: "#/definitions/RelatedParty" + $ref: '#/definitions/RelatedParty' orderRelationship: - type: "array" + type: array items: - $ref: "#/definitions/OrderRelationship" + $ref: '#/definitions/OrderRelationship' orderItem: - type: "array" + type: array items: - $ref: "#/definitions/ServiceOrderItem" + $ref: '#/definitions/ServiceOrderItem' orderMessage: - type: "array" + type: array items: - $ref: "#/definitions/OrderMessage" + $ref: '#/definitions/OrderMessage' OrderRelationship: - description: "Linked order to the one containing this attribute.\nThis relationship\ - \ is not used to sort ONAP request." + description: |- + Linked order to the one containing this attribute. + This relationship is not used to sort ONAP request. required: - - "id" - type: "object" + - 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" + 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" + description: The id of the related order + type: string href: - description: "A hyperlink to the related order" - type: "string" + description: A hyperlink to the related order + type: string '@referredType': - description: "Type of the referred order." - type: "string" + description: Type of the referred order. + type: string TargetServiceSchema: - description: "Target to the schema describing the service spec resource" + description: Target to the schema describing the service spec resource required: - - "@type" - - "@schemaLocation" - type: "object" + - '@type' + - '@schemaLocation' + type: object properties: '@type': - description: "Indicates the (class) type of resource." - type: "string" + 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" + 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" + description: Value is a descriptive structure for service characteristic + type: object properties: serviceCharacteristicValue: - description: "Value of the characteristic." - type: "string" + 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." + description: >- + 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. required: - - "id" - - "service" - type: "object" + - id + - service + type: object properties: id: - description: "Identifier of the line item (generally it is a sequence number\ - \ 01, 02, 03, …)" - type: "string" + description: >- + Identifier of the line item (generally it is a sequence number 01, 02, + 03, …) + type: string action: - $ref: "#/definitions/ActionType" + $ref: '#/definitions/ActionType' orderItemRelationship: - type: "array" + type: array items: - $ref: "#/definitions/OrderItemRelationship" + $ref: '#/definitions/OrderItemRelationship' service: - $ref: "#/definitions/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" + description: >- + 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. + type: object properties: externalId: - description: "ID given by the consumer and only understandable by him (to\ - \ facilitate his searches)" - type: "string" + 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: >- + 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" + 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" + 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" + 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" + description: Requested delivery date from the requestor perspective + type: string + format: date-time relatedParty: - type: "array" + type: array items: - $ref: "#/definitions/RelatedParty" + $ref: '#/definitions/RelatedParty' orderRelationship: - type: "array" + type: array items: - $ref: "#/definitions/OrderRelationship" + $ref: '#/definitions/OrderRelationship' orderItem: - type: "array" + type: array items: - $ref: "#/definitions/CreateServiceOrderItem" + $ref: '#/definitions/CreateServiceOrderItem' ServiceOrderSummary: - description: "This structure is used to provide a subset of serviceOrder attributes\ - \ to be provided in particular for notification messages" + description: >- + This structure is used to provide a subset of serviceOrder attributes to + be provided in particular for notification messages required: - - "id" - type: "object" + - id + type: object properties: id: - description: "ID created on repository side" - type: "string" + description: ID created on repository side + type: string href: - description: "Hyperlink to access the order" - type: "string" + 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" + description: >- + ID given by the consumer and only understandable by him (to facilitate + his searches) + type: string state: - $ref: "#/definitions/StateType" + $ref: '#/definitions/StateType' orderDate: - description: "" - type: "string" - format: "date-time" + description: '' + type: string + format: date-time completionDateTime: - description: "Date when the order was completed" - type: "string" - format: "date-time" + description: Date when the order was completed + type: string + format: date-time Notification: - description: "Notification structure for a serviceOrdering notification" + description: Notification structure for a serviceOrdering notification required: - - "eventId" - - "eventDate" - - "eventType" - - "event" - type: "object" + - eventId + - eventDate + - eventType + - event + type: object properties: eventId: - description: "" - type: "string" + description: '' + type: string eventDate: - description: "" - type: "string" - format: "date-time" + description: '' + type: string + format: date-time eventType: - $ref: "#/definitions/EventType" + $ref: '#/definitions/EventType' event: - $ref: "#/definitions/ServiceOrderSummaryWithItem" + $ref: '#/definitions/ServiceOrderSummaryWithItem' ServiceOrderItemSummary: - description: "Service Order item summary to be used for notification" + description: Service Order item summary to be used for notification required: - - "id" - - "service" - type: "object" + - id + - service + type: object properties: id: - description: "Identifier of the line item (generally it is a sequence number\ - \ 01, 02, 03, …)" - type: "string" + description: >- + Identifier of the line item (generally it is a sequence number 01, 02, + 03, …) + type: string action: - $ref: "#/definitions/ActionType" + $ref: '#/definitions/ActionType' state: - $ref: "#/definitions/StateType" + $ref: '#/definitions/StateType' service: - $ref: "#/definitions/Service" + $ref: '#/definitions/Service' ServiceOrderSummaryWithItem: - description: "Service order item summary with item description" + description: Service order item summary with item description required: - - "id" - type: "object" + - id + type: object properties: id: - description: "ID created on repository side" - type: "string" + description: ID created on repository side + type: string href: - description: "Hyperlink to access the order" - type: "string" + 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" + description: >- + ID given by the consumer and only understandable by him (to facilitate + his searches) + type: string state: - $ref: "#/definitions/StateType" + $ref: '#/definitions/StateType' orderDate: - description: "" - type: "string" - format: "date-time" + description: '' + type: string + format: date-time completionDateTime: - description: "Date when the order was completed" - type: "string" - format: "date-time" + description: Date when the order was completed + type: string + format: date-time orderItem: - type: "array" + type: array items: - $ref: "#/definitions/ServiceOrderItemSummary" + $ref: '#/definitions/ServiceOrderItemSummary' OrderMessage: - description: "An optional array of messages associated with the Order" + description: An optional array of messages associated with the Order required: - - "severity" - - "correctionRequired" - type: "object" + - severity + - correctionRequired + type: object properties: code: - description: "A code associated to this message" - type: "string" + description: A code associated to this message + type: string field: - description: "Service Order attribute related to this error message" - type: "string" + description: Service Order attribute related to this error message + type: string messageInformation: - description: "Message related to this order" - type: "string" + description: Message related to this order + type: string severity: - $ref: "#/definitions/SeverityMessage" + $ref: '#/definitions/SeverityMessage' correctionRequired: - description: "Indicator that an action is required to allow service order\ - \ fullfilment to follow up" - type: "boolean" + description: >- + Indicator that an action is required to allow service order + fullfilment to follow up + type: boolean -- 2.16.6