From 7afe844fb9f4171697ff5b82b86b2161ffbf2a78 Mon Sep 17 00:00:00 2001 From: Rene Robert Date: Wed, 28 Mar 2018 09:55:53 +0000 Subject: add API documentations Issue-ID: EXTAPI-40 Change-Id: If700a2e2700f7c19e22c8f5d11ddf425eb0075a5 Signed-off-by: Rene Robert --- docs/architecture/NBI_R1_Developer_Guide.rst | 62 + docs/offeredapis/NBI_R1_interface.rst | 201 ++ .../images/ONAP External ID Beijing.jpg | Bin 0 -> 103409 bytes .../images/ONAP_External_ID_Beijing.jpg | Bin 0 -> 103409 bytes docs/offeredapis/images/html.png | Bin 0 -> 4086 bytes docs/offeredapis/images/pdf.png | Bin 0 -> 1946 bytes docs/offeredapis/images/postman.png | Bin 0 -> 28777 bytes docs/offeredapis/images/swagger.png | Bin 0 -> 3590 bytes docs/offeredapis/images/swaggerUI.png | Bin 0 -> 3590 bytes docs/offeredapis/images/uml.jpg | Bin 0 -> 7044 bytes ...PBeijingServiceOrderDoc.postman_collection.json | 61 + .../serviceCatalog/apiServiceCatalog.plantuml | 110 ++ docs/offeredapis/serviceCatalog/asciiDoc.adoc | 487 +++++ docs/offeredapis/serviceCatalog/documentation.html | 1473 ++++++++++++++ docs/offeredapis/serviceCatalog/markDown.md | 294 +++ .../serviceInventory/apiServiceInventory.plantuml | 97 + docs/offeredapis/serviceInventory/asciiDoc.adoc | 461 +++++ .../serviceInventory/documentation.html | 1423 ++++++++++++++ docs/offeredapis/serviceInventory/markDown.md | 287 +++ .../serviceOrder/apiServiceOrder.plantuml | 168 ++ docs/offeredapis/serviceOrder/asciiDoc.adoc | 752 ++++++++ docs/offeredapis/serviceOrder/documentation.html | 2030 ++++++++++++++++++++ docs/offeredapis/serviceOrder/markDown.md | 463 +++++ .../offeredapis/swaggers/serviceCatalog_1_0_0.json | 652 +++++++ .../offeredapis/swaggers/serviceCatalog_1_0_0.yaml | 488 +++++ .../swaggers/serviceInventory_1_0_0.json | 620 ++++++ .../swaggers/serviceInventory_1_0_0.yaml | 423 ++++ docs/offeredapis/swaggers/serviceOrder_1_0_0.json | 1071 +++++++++++ docs/offeredapis/swaggers/serviceOrder_1_0_0.yaml | 768 ++++++++ 29 files changed, 12391 insertions(+) create mode 100644 docs/architecture/NBI_R1_Developer_Guide.rst create mode 100644 docs/offeredapis/NBI_R1_interface.rst create mode 100644 docs/offeredapis/images/ONAP External ID Beijing.jpg create mode 100644 docs/offeredapis/images/ONAP_External_ID_Beijing.jpg create mode 100644 docs/offeredapis/images/html.png create mode 100644 docs/offeredapis/images/pdf.png create mode 100644 docs/offeredapis/images/postman.png create mode 100644 docs/offeredapis/images/swagger.png create mode 100644 docs/offeredapis/images/swaggerUI.png create mode 100644 docs/offeredapis/images/uml.jpg create mode 100644 docs/offeredapis/postman/ONAPBeijingServiceOrderDoc.postman_collection.json create mode 100644 docs/offeredapis/serviceCatalog/apiServiceCatalog.plantuml create mode 100644 docs/offeredapis/serviceCatalog/asciiDoc.adoc create mode 100644 docs/offeredapis/serviceCatalog/documentation.html create mode 100644 docs/offeredapis/serviceCatalog/markDown.md create mode 100644 docs/offeredapis/serviceInventory/apiServiceInventory.plantuml create mode 100644 docs/offeredapis/serviceInventory/asciiDoc.adoc create mode 100644 docs/offeredapis/serviceInventory/documentation.html create mode 100644 docs/offeredapis/serviceInventory/markDown.md create mode 100644 docs/offeredapis/serviceOrder/apiServiceOrder.plantuml create mode 100644 docs/offeredapis/serviceOrder/asciiDoc.adoc create mode 100644 docs/offeredapis/serviceOrder/documentation.html create mode 100644 docs/offeredapis/serviceOrder/markDown.md create mode 100644 docs/offeredapis/swaggers/serviceCatalog_1_0_0.json create mode 100644 docs/offeredapis/swaggers/serviceCatalog_1_0_0.yaml create mode 100644 docs/offeredapis/swaggers/serviceInventory_1_0_0.json create mode 100644 docs/offeredapis/swaggers/serviceInventory_1_0_0.yaml create mode 100644 docs/offeredapis/swaggers/serviceOrder_1_0_0.json create mode 100644 docs/offeredapis/swaggers/serviceOrder_1_0_0.yaml (limited to 'docs') diff --git a/docs/architecture/NBI_R1_Developer_Guide.rst b/docs/architecture/NBI_R1_Developer_Guide.rst new file mode 100644 index 0000000..06a2ed7 --- /dev/null +++ b/docs/architecture/NBI_R1_Developer_Guide.rst @@ -0,0 +1,62 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2018 ORANGE + + +============ +NBI - Developer Guide +============ +*************** +Introduction +*************** + +NBI is a Java 8 web application built over Spring Framework. Using Spring Boot 1.5.10 dependencies, it runs as a standalone application with an embedded Tomcat server. + +*************** +Dependencies +*************** +This project use various framework which are managed with Maven dependency management tool (see *pom.xml* file at root level) : + +- Swagger annotations +- `Spring Framework `_ +- `JOLT `_ to perform JsonToJson transformation +- `FasterXML/Jackson `_ to perform JSON parsing +- `Wiremock `_ to perform testing over HTTP mocked response + + +*************** +Configuration +*************** +A configuration file, *src/main/resources/application.properties* list all the component interface that can be configured depending on the environment were the app is deployed. +By default, the application runs with an embedded MySQL H2 Database and a MongoDB local instance. +This file also list configurations of all the REST interface maid from NBI to other ONAP component such as SDC, AA&I and SO. + +*************** +Source tree +*************** +This application provides ServiceOrder, ServiceCatalag and ServiceInventory as main functional resources and HealthCheck. Each resource is implemented independently in a package corresponding to its name. + +*commons , configuration, and exceptions* are shared technical classes that provided for all the application. + + +*************************************** +Running and testing the application +*************************************** + +**Locally** + +Ensure that you have a MongoDB instance running and configured in *application.properties* file. +Run *Application.java* class in your favorite IDE + +Or through a terminal, ensure that your maven installation is works and run *mvn spring-boot:run* command to start the appication. + + +**Docker** + +in progress ... + + +**Testing** + +You can run a test by using `VisualStudio RestClient plugin `_ +See the *restclient* package at root level to find *.vscode/settings.json* configuration file and */json/* package with samples requests that can be run. \ No newline at end of file diff --git a/docs/offeredapis/NBI_R1_interface.rst b/docs/offeredapis/NBI_R1_interface.rst new file mode 100644 index 0000000..1a14a9d --- /dev/null +++ b/docs/offeredapis/NBI_R1_interface.rst @@ -0,0 +1,201 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2018 ORANGE + + +============ +nbi - northbound interface - External API for ONAP +============ +*************** +Introduction +*************** + +NBI stands for NorthBound Interface. It brings to ONAP a set of API that can be used by external systems as BSS for example. These API are based on **TMF API**. + +*************** +Global NBI architecture for Beijing release +*************** + +Following illustration provides a global view about nbi architecture,integration with other ONAP components and API resource/operation provided. + +.. image:: images/ONAP_External_ID_Beijing.jpg + :width: 800px + +*************** +API Version +*************** + +APIs are described with a state version with “v” following the API Name, e.g.: nbi/api/v1/productOrder. +The schema associated with a REST API must have its version number aligned with that of the REST API. + +The version number has major, minor and revision numbers. E.g. v1.0.0 +The version number (without the revision number) is held in the URI. + +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 version number must be updated. + +*************** +API Table +*************** + +.. |pdf-icon| image:: images/pdf.png + :width: 40px + +.. |swagger-icon| image:: images/swagger.png + :width: 40px + + +.. |swaggerUI-icon| image:: images/swaggerUI.png + :width: 40px + +.. |html-icon| image:: images/html.png + :width: 40px + +.. |plantuml-icon| image:: images/uml.jpg + :width: 40px + +.. |postman-icon| image:: images/postman.png + :width: 40px + +.. csv-table:: + :header: "API", "|swagger-icon|", "|html-icon|", "|plantuml-icon|", "|swagger-icon|", "|postman-icon|", "|pdf-icon|" + :widths: 10,5,5,5,5,5,5 + + " ", "json file", "html doc", "plantUML doc", "Swagger Editor", "Postman Collection", "pdf doc" + "serviceCatalog", ":download:`link `", ":download:`link `", ":download:`link `", "`link `_", "coming", "coming" + "serviceInventory", ":download:`link `", ":download:`link `", ":download:`link `", "`link `_", "coming", "coming" + "serviceOrder", ":download:`link `", ":download:`link `", ":download:`link `", "`link `_", ":download:`link `", "coming" + + +*************** +API Description +*************** + +**serviceCatalog:** + +From TMF633 serviceCatalog + +API at a glance: +Only high level information are provided - swagger is documented. + +Only serviceSpecification resource is provided. +Information are retrieved in SDC (and in Tosca file) - Only GET operation is provided - this API DID NOT UPDATE SDC + +Only characteristics at service level will be retrieved in ONAP Tosca file. For example if an ONAP service is composed of VNF and the VF module, the serviceSpecification resource will only feature characteristic describe in the ONAP service tosca model and not attributes in the tosca files for VNF or VF module. + +Only ‘basic’ service characteristics will be managed in this release. By ‘basic’ we mean string, boolean, integer parameter type and we do not manage ‘map’ or ‘list parameter type + + +GET serviceSpecification(list) + +(example: GET /nbi/api/v1/serviceSpecification/?category=NetworkService&distributionStatus =DISTRIBUTED) + +It is possible to retrieve a list of serviceSpecification (get by list). + +Only attributes category and distributionStatus are available for serviceSpecification filtering. It is possible to select retrieved attributes using fields attribute. + +if no serviceSpecification matches, an empty list is send back. + +GET tservice Specification (id) + +(example: GET /nbi/api/v1/serviceSpecification/{uuid}) + +It is use to retrieve one serviceSpecification - all available information are retieved (see swagger for description) + + +**serviceInventory:** + +From TMF638 serviceInventory + +API at a glance: +Only high level information are provided - swagger is documented. + +This API retrieves service(s) in the AAI inventory. Only following attributes will be retrieve in service inventory: id, name and type (no state or startDate available ) + +GET Service Inventory (list): + +(example: GET /nbi/api/v1/service/?relatedParty.id=Pontus +) + +GET (by list) allows to request with following criteria (all optional) : + +* id (id of the service instance) - id of the service instance (inventory) +* serviceSpecification.id - id of the service specification (catalog) +* serviceSpecification.name - name of the service specification (catalog) +* relatedParty.id - id of the (aai) customer - if not filled we use ‘generic’ customer + +if no service matches, an empty list is send back. + +1. If a request is send without any parameter, we’ll retrieve the list of service-instance for the ‘generic’ customer +2. If only customer parameter is filled (relatedParty.id + role= relatedParty’ONAPcustomer’) we’ll retrieve the list of service-instance for this customer +3. If serviceSpecification.id or name is filled we’ll retrieve the list of Service instance (from this service specification) – We’ll use the customer id if provided (with Role=’ONAPcustomer) or generic if no customer id provided + + +GET Service Inventory (id): + +(example: GET /nbi/api/v1/service/{uuid} but customerId & serviceSpecification.id must passed in requested parameters) + + +Because of AAI capability, additionally to the service id, customer id and [serviceSpecification.id or serviceSpecification.name] must be supplied. If the customer id is not supplied, External API will use ‘generic’ customer + +**serviceOrder:** + + +From TMF641 serviceOrder + +API at a glance: +Only high level information are provided - swagger is documented. + +It is possible to use POST operation to create new serviceOrder in nbi and triggers service provisioning. GET operation is also available to retrieve one service order by providing id or a list of service order. For this release, only a subset of criteria is available: + +• externalId +• state +• description +• orderDate.gt (orderDate must be greater – after -than) +• orderDate.lt (orderDate must be lower-before - than) +• fields – attribute used to filter retrieved attributes (if needed) and also for sorted SO +• offset and limit are used for pagination purpose + + + +ServiceOrder will manage only ‘add’ and ‘delete’ operation (no change). + +prerequisites & assumptions : + +• Cloud & tenant information MUST BE defined in the external API property file +• Management of ONAP customer for add service action: +With the current version of APIs used from SO and AAI we need to manage a ‘customer’. This customer concept is confusing with Customer BSS concept. We took the following rules to manage the ‘customer’ information: + +• It could be provided through a serviceOrder in the service Order a relatedParty with role ‘ONAPcustomer’ should be provided in the serviceOrder header (we will not consider in this release the party at item level); External API component will check if this customer exists and create it in AAI if not. +• If no relatedParty are provided the service will be affected to ‘generic’ customer (dummy customer) – we assume this ‘generic’ customer always exists. + +• Additionally nbi will create in AAI the service-type if it did not exists for the customer + +• Integration is done at service-level: nbi will trigger only SO request at serviceInstance level --> ONAP prerequisite: SO must be able to find a BPMN to process service fulfillment (integrate vnf, vnf activation in SDNC, VF module + +• State management: States are only managed by ServiceOrder component and could not be updated from north side via API. Accordingly to service order item fulfillment progress, order item state are updated. Order state is automatically updated based on item state. + + +*************** +Developer Guide +*************** + +Technical information about NBI (dependancies, configuration, running & testing) could be found here: `DevDoc `_ + + + + + + + diff --git a/docs/offeredapis/images/ONAP External ID Beijing.jpg b/docs/offeredapis/images/ONAP External ID Beijing.jpg new file mode 100644 index 0000000..8fbd4ab Binary files /dev/null and b/docs/offeredapis/images/ONAP External ID Beijing.jpg differ diff --git a/docs/offeredapis/images/ONAP_External_ID_Beijing.jpg b/docs/offeredapis/images/ONAP_External_ID_Beijing.jpg new file mode 100644 index 0000000..8fbd4ab Binary files /dev/null and b/docs/offeredapis/images/ONAP_External_ID_Beijing.jpg differ diff --git a/docs/offeredapis/images/html.png b/docs/offeredapis/images/html.png new file mode 100644 index 0000000..f1bda88 Binary files /dev/null and b/docs/offeredapis/images/html.png differ diff --git a/docs/offeredapis/images/pdf.png b/docs/offeredapis/images/pdf.png new file mode 100644 index 0000000..fed52f9 Binary files /dev/null and b/docs/offeredapis/images/pdf.png differ diff --git a/docs/offeredapis/images/postman.png b/docs/offeredapis/images/postman.png new file mode 100644 index 0000000..cab386c Binary files /dev/null and b/docs/offeredapis/images/postman.png differ diff --git a/docs/offeredapis/images/swagger.png b/docs/offeredapis/images/swagger.png new file mode 100644 index 0000000..f5a9e0c Binary files /dev/null and b/docs/offeredapis/images/swagger.png differ diff --git a/docs/offeredapis/images/swaggerUI.png b/docs/offeredapis/images/swaggerUI.png new file mode 100644 index 0000000..f5a9e0c Binary files /dev/null and b/docs/offeredapis/images/swaggerUI.png differ diff --git a/docs/offeredapis/images/uml.jpg b/docs/offeredapis/images/uml.jpg new file mode 100644 index 0000000..d288c6c Binary files /dev/null and b/docs/offeredapis/images/uml.jpg differ diff --git a/docs/offeredapis/postman/ONAPBeijingServiceOrderDoc.postman_collection.json b/docs/offeredapis/postman/ONAPBeijingServiceOrderDoc.postman_collection.json new file mode 100644 index 0000000..92a16eb --- /dev/null +++ b/docs/offeredapis/postman/ONAPBeijingServiceOrderDoc.postman_collection.json @@ -0,0 +1,61 @@ +{ + "variables": [], + "info": { + "name": "ONAP Beijing ServiceOrder Doc", + "_postman_id": "d88ad75d-6fae-13ea-d63c-cac1f445a1bf", + "description": "", + "schema": "https://schema.getpostman.com/json/collection/v2.0.0/collection.json" + }, + "item": [ + { + "name": "ServiceOrder1", + "request": { + "url": "{nbiHostName}:{nbiPort}/nbi/api/v1/serviceOrder", + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json", + "description": "" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"externalId\": \"NBI-SO001\",\n \"priority\": \"1\",\n \"description\": \"Firevall service ordering on customer specified\",\n \"category\": \"Consumer\",\n \"requestedStartDate\": \"2018-02-28T13:33:37.299Z\",\n \"requestedCompletionDate\": \"2018-02-28T13:33:37.299Z\",\n \"relatedParty\": [\n {\n \"id\": \"6490\",\n \"role\": \"ONAPcustomer\",\n \"name\": \"Jean Pontus\",\n \"@referredType\": \"individual\"\n }\n ],\n \"orderItem\": [\n {\n \"id\": \"1\",\n \"action\": \"add\",\n \"service\": {\n \"id\": \"vFW0001\",\n \"serviceState\": \"active\",\n \"serviceSpecification\": {\n \"id\": \"3dd3923d-1681-4f5b-99bb-f695ab147004\"\n }\n }\n }\n ]\n}" + }, + "description": "" + }, + "response": [] + }, + { + "name": "ServiceOrder2", + "request": { + "url": "http://127.0.0.1:8090/serviceOrder", + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json", + "description": "" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"externalId\": \"NBI-SO002\",\n \"priority\": \"1\",\n \"description\": \"Firevall service ordering on customer not specified - added to generic customer\",\n \"category\": \"Consumer\",\n \"requestedStartDate\": \"2018-02-28T13:33:37.299Z\",\n \"requestedCompletionDate\": \"2018-02-28T13:33:37.299Z\",\n \"orderItem\": [\n {\n \"id\": \"1\",\n \"action\": \"add\",\n \"service\": {\n \"id\": \"vFW0002\",\n \"serviceState\": \"active\",\n \"serviceSpecification\": {\n \"id\": \"3dd3923d-1681-4f5b-99bb-f695ab147004\"\n }\n }\n }\n ]\n}" + }, + "description": "" + }, + "response": [] + } + ] +} \ No newline at end of file diff --git a/docs/offeredapis/serviceCatalog/apiServiceCatalog.plantuml b/docs/offeredapis/serviceCatalog/apiServiceCatalog.plantuml new file mode 100644 index 0000000..8483238 --- /dev/null +++ b/docs/offeredapis/serviceCatalog/apiServiceCatalog.plantuml @@ -0,0 +1,110 @@ +@startuml + +enum LifecycleStatusValues { + NOT_CERTIFIED_CHECKOUT + NOT_CERTIFIED_CHECKIN + READY_FOR_CERTIFICATION + CERTIFICATION_IN_PROGRESS + CERTIFIED +} +enum DistributionStatus { + DISTRIBUTION_NOT_APPROVED + DISTRIBUTION_APPROVED + DISTRIBUTED + DISTRIBUTION_REJECTED +} + +class ErrorRepresentation { + code:int + reason:string + message:string + status:string + referenceErrror:string + @type:string + @schemaLocation:string +} + +class TimePeriod { + startDateTime:dateTime + endDateTime:dateTime +} + +class RelatedPartyRef { + id:string + role:string + name:string +} + +class ServiceSpecification { + id:string + href:string + name:string + description:string + @type:string + @schemaLocation:string + @baseType:string + invariantUUID:string + toscaModelURL:string + toscaResourceName:string + category:string + subcategory:string + version:string +} + ServiceSpecification --> "0-1" DistributionStatus : distributionStatus + ServiceSpecification --> "0-1" LifecycleStatusValues : lifecycleStatus + ServiceSpecification --> "0-1" TargetServiceSchemaRef : targetServiceSchema + ServiceSpecification --> "0-*" Attachment : attachment + ServiceSpecification --> "0-*" RelatedPartyRef : relatedParty + ServiceSpecification --> "0-*" ResourceSpecificationRef : resourceSpecification + ServiceSpecification --> "0-*" ServiceSpecCharacteristic : serviceSpecCharacteristic + +class ServiceSpecCharacteristic { + name:string + description:string + valueType:string + @type:string + @schemaLocation:string + required:boolean + status:string +} + ServiceSpecCharacteristic --> "0-*" ServiceSpecCharacteristicValue : serviceSpecCharacteristicValue + +class Attachment { + id:string + name:string + description:string + @type:string + artifactLabel:string + artifactGroupType:string + artifactTimeout:string + artifactChecksum:string + artifactVersion:string + generatedFromUUID:string + url:string + mimeType:string +} + +class ServiceSpecCharacteristicValue { + valueType:string + isDefault:boolean + value:string +} + +class ResourceSpecificationRef { + id:string + version:string + name:string + @type:string + resourceInstanceName:string + resourceInvariantUUID:string + resourceType:string + modelCustomizationName:string + modelCustomizationId:string +} + +class TargetServiceSchemaRef { + @type:string + @schemaLocation:string +} + +@enduml \ No newline at end of file diff --git a/docs/offeredapis/serviceCatalog/asciiDoc.adoc b/docs/offeredapis/serviceCatalog/asciiDoc.adoc new file mode 100644 index 0000000..327f239 --- /dev/null +++ b/docs/offeredapis/serviceCatalog/asciiDoc.adoc @@ -0,0 +1,487 @@ += API ServiceCatalog + + +[[_overview]] +== Overview + +=== Api URL + +https://api-designer.sso.infra.ftgroup/swagger-ui/?url=https://api-designer.sso.infra.ftgroup/api/1.0/apis/N3ma89X1x0/swagger.json[Swagger UI] + + +https://plantuml.rd.francetelecom.fr/proxy?fmt=svg&src=https://api-designer.sso.infra.ftgroup/api/1.0/apis/N3ma89X1x0/plantuml&noCache=797767.0[plant UML UI] + +serviceCatalog API designed for ONAP Beijing Release. +This API is build from TMF open API17.5. +Only operation GET (by id & byList) for resource serviceSpecification is available + + +=== Version information +[%hardbreaks] +__Version__ : 1.0.0_inProgress + + +=== URI scheme +[%hardbreaks] +__Host__ : serverRoot +__BasePath__ : /nbi/api/v1 +__Schemes__ : HTTPS + + +=== Tags + +* ServiceSpecification + + +=== Consumes + +* `application/json;charset=utf-8` + + +=== Produces + +* `application/json;charset=utf-8` + + +[[_paths]] +== Resources + +[[_servicespecification_resource]] +=== ServiceSpecification + +[[_servicespecificationfind]] +==== List service specifications +.... +GET /serviceSpecification +.... + + +===== Description +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 + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + +===== Parameters + +[options="header", cols=".^2,.^3,.^9,.^4"] +|=== +|Type|Name|Description|Schema +|**Query**|**category** + +__optional__|Service Category (filter)|string +|**Query**|**distributionStatus** + +__optional__|Service distribution status (filter)|string +|**Query**|**fields** + +__optional__|Field selection - used to filtering the attributes to be retreived|string +|=== + + +===== Responses + +[options="header", cols=".^2,.^14,.^4"] +|=== +|HTTP Code|Description|Schema +|**200**|Success|< <<_servicespecification,ServiceSpecification>> > array +|**400**|Bad Request + +List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>> +|**401**|Unauthorized + +List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>> +|**403**|Forbidden + +List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>> +|**404**|Not Found + +List of supported error codes: +- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>> +|**422**|Unprocessable entity + +Functional error|<<_errorrepresentation,ErrorRepresentation>> +|**500**|Internal Server Error + +List of supported error codes: +- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>> +|**503**|Service Unavailable + +List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>> +|=== + + +[[_servicespecificationget]] +==== Retrieve a service specification +.... +GET /serviceSpecification/{id} +.... + + +===== Description +This operation returns a service specification by its id from a catalog. Attribute selection is enabled using the fields attribute. + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + +===== Parameters + +[options="header", cols=".^2,.^3,.^9,.^4"] +|=== +|Type|Name|Description|Schema +|**Path**|**id** + +__required__||string +|**Query**|**fields** + +__optional__|Attribute selection|string +|=== + + +===== Responses + +[options="header", cols=".^2,.^14,.^4"] +|=== +|HTTP Code|Description|Schema +|**200**|Success|<<_servicespecification,ServiceSpecification>> +|**400**|Bad Request + +List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>> +|**401**|Unauthorized + +List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>> +|**403**|Forbidden + +List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>> +|**404**|Not Found + +List of supported error codes: +- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>> +|**422**|Unprocessable entity + +Functional error|<<_errorrepresentation,ErrorRepresentation>> +|**500**|Internal Server Error + +List of supported error codes: +- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>> +|**503**|Service Unavailable + +List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>> +|=== + + +[[_definitions]] +== Definitions + +[[_attachment]] +=== Attachment +An attachment is a file uses to describe the service. +In nbi we use attachment to retrieve ONAP artifacts. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@type** + +__optional__|This attribute allows to dynamically extends TMF class. Valued with 'ONAPartifact'. We used this features to add following attributes: +artifactLabel +artifactGroupType +artifactTimeout +artifactChecksum +artifactVersion +generatedFromUUID + +**Default** : `"ONAPartifact"`|string +|**artifactChecksum** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - artifactChecksum|string +|**artifactGroupType** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - artifactGroupType|string +|**artifactLabel** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - artifactLabel|string +|**artifactTimeout** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - artifactTimeout|string +|**artifactVersion** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - artifactVersion|string +|**description** + +__optional__|Description of the attachment - filled with artifactDescription|string +|**generatedFromUUID** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - generatedFromUUID|string +|**id** + +__optional__|Unique identifier of the attachment - filled with artifactUUID.|string +|**mimeType** + +__optional__|Filled with artifactType|string +|**name** + +__optional__|Name of the attachment - filled with artifactName|string +|**url** + +__optional__|Uniform Resource Locator, is a web page address - filled with artifactURL|string +|=== + + +[[_distributionstatus]] +=== DistributionStatus +Service distribution status from ONAP. + +__Type__ : enum (DISTRIBUTION_NOT_APPROVED, DISTRIBUTION_APPROVED, DISTRIBUTED, DISTRIBUTION_REJECTED) + + +[[_errorrepresentation]] +=== ErrorRepresentation +This class is used to describe error. +for nbi Beijing release we do not manage additional error for serviceCatalog + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@schemaLocation** + +__optional__|it provides a link to the schema describing a REST resource.|string +|**@type** + +__optional__|The class type of a REST resource.|string +|**code** + +__required__|Application related code (as defined in the API or from a common list)|integer (int32) +|**message** + +__optional__|Text that provide more details and corrective actions related to the error. This can be shown to a client user|string +|**reason** + +__required__|Text that explains the reason for error. This can be shown to a client user.|string +|**referenceErrror** + +__optional__|url pointing to documentation describing the error|string +|**status** + +__optional__|http error code extension like 400-2|string +|=== + + +[[_lifecyclestatusvalues]] +=== LifecycleStatusValues +Service lifecycle value from ONAP SDC + +__Type__ : enum (NOT_CERTIFIED_CHECKOUT, NOT_CERTIFIED_CHECKIN, READY_FOR_CERTIFICATION, CERTIFICATION_IN_PROGRESS, CERTIFIED) + + +[[_relatedpartyref]] +=== RelatedPartyRef +Party linked to the service catalog. +in nbi we retrieve information about last updater of the service in SDC + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**id** + +__optional__|Unique identifier of the related party. Filled with lastUpdaterUserId|string +|**name** + +__optional__|Name of the related party - Filled with lastUpdatedFullName|string +|**role** + +__optional__|Role payed by the related party +Only role 'lastUpdater' is retrieved in Beijing release|string +|=== + + +[[_resourcespecificationref]] +=== ResourceSpecificationRef +A list of resourceSpec identified to deliver the service. +for nbi we retrieve resource information available in service description (through SDC api) bu as well information retrieved in the TOSCA file. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@type** + +__optional__|This attribute allows to dynamically extends TMF class. Valued with: 'ONAPresource'. We used this features to add following attributes: +resourceInstanceName +resourceInvariantUUID +resourceType +modelCustomizationName +modelCustomizationId + +**Default** : `"ONAPresource"`|string +|**id** + +__optional__|Unique identifier of the resource specification - filled with resourceUUID|string +|**modelCustomizationId** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - Retrieved in the TOSCA file : attribute customizationUUID in topology_template/node_template for the resource|string +|**modelCustomizationName** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - Retrieved in the TOSCA file : attribute name in topology_template/node_template for the resource|string +|**name** + +__optional__|Name of the resource specification - filled with resourceName|string +|**resourceInstanceName** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - resourceInstanceName|string +|**resourceInvariantUUID** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - resourceInvariantUUID|string +|**resourceType** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - resoucreType|string +|**version** + +__optional__|Version for this resource specification - filled with resourceVersion|string +|=== + + +[[_servicespeccharacteristic]] +=== ServiceSpecCharacteristic +A characteristic quality or distinctive feature of a ServiceSpecification. +ServiceSpecCharacteristic are retrieved in the serviceTosca file in the topology_template section in the inputs section. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@schemaLocation** + +__optional__|An url pointing to type description - we do not use it in nbi Beijing release|string +|**@type** + +__optional__|This attribute allows to dynamically extends TMF class. Valued with: 'ONAPserviceCharacteristic'. We do not used this features in nbi Beijing release.|string +|**description** + +__optional__|A narrative that explains in detail what the characteristic is - Filled with parameter_description|string +|**name** + +__optional__|Name of the characteristic - Filled with parameter_name|string +|**required** + +__optional__|A parameter to define if the characteristic is mandatory - Filled from parameter_required – if not fielded by default ‘true’ + +**Default** : `true`|boolean +|**serviceSpecCharacteristicValue** + +__optional__||< <<_servicespeccharacteristicvalue,ServiceSpecCharacteristicValue>> > array +|**status** + +__optional__|Status of the characteristic - filled with status_value|string +|**valueType** + +__optional__|A kind of value that the characteristic can take on, such as numeric, text and so forth - Filled with parameter_type|string +|=== + + +[[_servicespeccharacteristicvalue]] +=== ServiceSpecCharacteristicValue +A number or text that can be assigned to a service specification characteristic. +ServiceSpecCharacteristicValue are retrieved in the service Tosca file + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**isDefault** + +__optional__|Information calculated from parameter default in the Tosca file|boolean +|**value** + +__optional__|A discrete value that the characteristic can take on|string +|**valueType** + +__optional__|A kind of value that the characteristic can take on, such as numeric, text, and so forth +Retrieved in the Tosca in the topology_template section in the inputs section - parameter_type. +We do not manage parameter_type= list or map for Beijing release|string +|=== + + +[[_servicespecification]] +=== ServiceSpecification +ServiceSpecification is a class that offers characteristics to describe a type of service. Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics. +the service information are retrieved in SDC + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@baseType** + +__optional__|Not used for Beijing release|string +|**@schemaLocation** + +__optional__|Not used for Beijing release|string +|**@type** + +__optional__|This attribute allows to dynamically extends TMF class. Valued with 'ONAPservice'. We used this features to add following attributes: +invariantUUID +toscaModelURL +toscaResourceName +category (1) +subcategory (1) +distributionStatus + +**Default** : `"ONAPservice"`|string +|**attachment** + +__optional__||< <<_attachment,Attachment>> > array +|**category** + +__optional__|Additional attribute - extended through @type - category +Please note that this attribute is managed in TMF - in future release we'll introduce category resource|string +|**description** + +__optional__|A narrative that explains in detail what the service specification is - Filled with SDC Service description|string +|**distributionStatus** + +__optional__||<<_distributionstatus,DistributionStatus>> +|**href** + +__optional__|Reference of the service specification- not mapped in Beijing|string +|**id** + +__optional__|Unique identifier of the service specification. Filled with SDC Service uuid|string +|**invariantUUID** + +__required__|Additional attribute (not in the TMF API) - extended through @type - invariantUUID|string +|**lifecycleStatus** + +__optional__||<<_lifecyclestatusvalues,LifecycleStatusValues>> +|**name** + +__optional__|Name of the service specification- Filled with SDC Service name|string +|**relatedParty** + +__optional__||< <<_relatedpartyref,RelatedPartyRef>> > array +|**resourceSpecification** + +__optional__||< <<_resourcespecificationref,ResourceSpecificationRef>> > array +|**serviceSpecCharacteristic** + +__optional__||< <<_servicespeccharacteristic,ServiceSpecCharacteristic>> > array +|**subcategory** + +__optional__|Additional attribute - extended through @type - category +Please note that this attribute is managed in TMF - in future release we'll introduce category resourc|string +|**targetServiceSchema** + +__optional__||<<_targetserviceschemaref,TargetServiceSchemaRef>> +|**toscaModelURL** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - toscaModelURL|string +|**toscaResourceName** + +__optional__|Additional attribute (not in the TMF API) - extended through @type - toscaResourceName|string +|**version** + +__optional__|Service specification version - Filled with SDC Service version|string +|=== + + +[[_targetserviceschemaref]] +=== TargetServiceSchemaRef + +[options="header", cols=".^3,.^4"] +|=== +|Name|Schema +|**@schemaLocation** + +__required__|string +|**@type** + +__required__|string +|=== + + +[[_timeperiod]] +=== TimePeriod +A time period + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**endDateTime** + +__optional__|End date and time of the period|string (date-time) +|**startDateTime** + +__optional__|Start date and time of the period|string (date-time) +|=== + diff --git a/docs/offeredapis/serviceCatalog/documentation.html b/docs/offeredapis/serviceCatalog/documentation.html new file mode 100644 index 0000000..b1ea44a --- /dev/null +++ b/docs/offeredapis/serviceCatalog/documentation.html @@ -0,0 +1,1473 @@ + + + + + + + +API ServiceCatalog + + + + + +
+
+

Overview

+
+
+
+

serviceCatalog API designed for ONAP Beijing Release. +This API is build from TMF open API17.5. +Only operation GET (by id & byList) for resource serviceSpecification is available

+
+
+
+

Version information

+
+

Version : 1.0.0_inProgress

+
+
+
+

URI scheme

+
+

Host : serverRoot
+BasePath : /nbi/api/v1
+Schemes : HTTPS

+
+
+
+

Tags

+
+
    +
  • +

    ServiceSpecification

    +
  • +
+
+
+
+

Consumes

+
+
    +
  • +

    application/json;charset=utf-8

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json;charset=utf-8

    +
  • +
+
+
+
+
+
+

Resources

+
+
+

ServiceSpecification

+
+

List service specifications

+
+
+
GET /serviceSpecification
+
+
+
+
Description
+
+

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

+
+
+

Specific business errors for current operation will be encapsulated in

+
+
+

HTTP Response 422 Unprocessable entity

+
+
+
+
Parameters
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionSchema

Query

category
+optional

Service Category (filter)

string

Query

distributionStatus
+optional

Service distribution status (filter)

string

Query

fields
+optional

Field selection - used to filtering the attributes to be retreived

string

+
+
+
Responses
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

Success

< ServiceSpecification > array

400

Bad Request

+

List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value

ErrorRepresentation

401

Unauthorized

+

List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials

ErrorRepresentation

403

Forbidden

+

List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests

ErrorRepresentation

404

Not Found

+

List of supported error codes: +- 60: Resource not found

ErrorRepresentation

422

Unprocessable entity

+

Functional error

ErrorRepresentation

500

Internal Server Error

+

List of supported error codes: +- 1: Internal error

ErrorRepresentation

503

Service Unavailable

+

List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !

ErrorRepresentation

+
+
+
+

Retrieve a service specification

+
+
+
GET /serviceSpecification/{id}
+
+
+
+
Description
+
+

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

+
+
+

Specific business errors for current operation will be encapsulated in

+
+
+

HTTP Response 422 Unprocessable entity

+
+
+
+
Parameters
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionSchema

Path

id
+required

string

Query

fields
+optional

Attribute selection

string

+
+
+
Responses
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

Success

ServiceSpecification

400

Bad Request

+

List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value

ErrorRepresentation

401

Unauthorized

+

List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials

ErrorRepresentation

403

Forbidden

+

List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests

ErrorRepresentation

404

Not Found

+

List of supported error codes: +- 60: Resource not found

ErrorRepresentation

422

Unprocessable entity

+

Functional error

ErrorRepresentation

500

Internal Server Error

+

List of supported error codes: +- 1: Internal error

ErrorRepresentation

503

Service Unavailable

+

List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !

ErrorRepresentation

+
+
+
+
+
+
+

Definitions

+
+
+

Attachment

+
+

An attachment is a file uses to describe the service. +In nbi we use attachment to retrieve ONAP artifacts.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@type
+optional

This attribute allows to dynamically extends TMF class. Valued with 'ONAPartifact'. We used this features to add following attributes: +artifactLabel +artifactGroupType +artifactTimeout +artifactChecksum +artifactVersion +generatedFromUUID
+Default : "ONAPartifact"

string

artifactChecksum
+optional

Additional attribute (not in the TMF API) - extended through @type - artifactChecksum

string

artifactGroupType
+optional

Additional attribute (not in the TMF API) - extended through @type - artifactGroupType

string

artifactLabel
+optional

Additional attribute (not in the TMF API) - extended through @type - artifactLabel

string

artifactTimeout
+optional

Additional attribute (not in the TMF API) - extended through @type - artifactTimeout

string

artifactVersion
+optional

Additional attribute (not in the TMF API) - extended through @type - artifactVersion

string

description
+optional

Description of the attachment - filled with artifactDescription

string

generatedFromUUID
+optional

Additional attribute (not in the TMF API) - extended through @type - generatedFromUUID

string

id
+optional

Unique identifier of the attachment - filled with artifactUUID.

string

mimeType
+optional

Filled with artifactType

string

name
+optional

Name of the attachment - filled with artifactName

string

url
+optional

Uniform Resource Locator, is a web page address - filled with artifactURL

string

+
+
+

DistributionStatus

+
+

Service distribution status from ONAP.

+
+
+

Type : enum (DISTRIBUTION_NOT_APPROVED, DISTRIBUTION_APPROVED, DISTRIBUTED, DISTRIBUTION_REJECTED)

+
+
+
+

ErrorRepresentation

+
+

This class is used to describe error. +for nbi Beijing release we do not manage additional error for serviceCatalog

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@schemaLocation
+optional

it provides a link to the schema describing a REST resource.

string

@type
+optional

The class type of a REST resource.

string

code
+required

Application related code (as defined in the API or from a common list)

integer (int32)

message
+optional

Text that provide more details and corrective actions related to the error. This can be shown to a client user

string

reason
+required

Text that explains the reason for error. This can be shown to a client user.

string

referenceErrror
+optional

url pointing to documentation describing the error

string

status
+optional

http error code extension like 400-2

string

+
+
+

LifecycleStatusValues

+
+

Service lifecycle value from ONAP SDC

+
+
+

Type : enum (NOT_CERTIFIED_CHECKOUT, NOT_CERTIFIED_CHECKIN, READY_FOR_CERTIFICATION, CERTIFICATION_IN_PROGRESS, CERTIFIED)

+
+
+
+

RelatedPartyRef

+
+

Party linked to the service catalog. +in nbi we retrieve information about last updater of the service in SDC

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

id
+optional

Unique identifier of the related party. Filled with lastUpdaterUserId

string

name
+optional

Name of the related party - Filled with lastUpdatedFullName

string

role
+optional

Role payed by the related party +Only role 'lastUpdater' is retrieved in Beijing release

string

+
+
+

ResourceSpecificationRef

+
+

A list of resourceSpec identified to deliver the service. +for nbi we retrieve resource information available in service description (through SDC api) bu as well information retrieved in the TOSCA file.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@type
+optional

This attribute allows to dynamically extends TMF class. Valued with: 'ONAPresource'. We used this features to add following attributes: +resourceInstanceName +resourceInvariantUUID +resourceType +modelCustomizationName +modelCustomizationId
+Default : "ONAPresource"

string

id
+optional

Unique identifier of the resource specification - filled with resourceUUID

string

modelCustomizationId
+optional

Additional attribute (not in the TMF API) - extended through @type - Retrieved in the TOSCA file : attribute customizationUUID in topology_template/node_template for the resource

string

modelCustomizationName
+optional

Additional attribute (not in the TMF API) - extended through @type - Retrieved in the TOSCA file : attribute name in topology_template/node_template for the resource

string

name
+optional

Name of the resource specification - filled with resourceName

string

resourceInstanceName
+optional

Additional attribute (not in the TMF API) - extended through @type - resourceInstanceName

string

resourceInvariantUUID
+optional

Additional attribute (not in the TMF API) - extended through @type - resourceInvariantUUID

string

resourceType
+optional

Additional attribute (not in the TMF API) - extended through @type - resoucreType

string

version
+optional

Version for this resource specification - filled with resourceVersion

string

+
+
+

ServiceSpecCharacteristic

+
+

A characteristic quality or distinctive feature of a ServiceSpecification. +ServiceSpecCharacteristic are retrieved in the serviceTosca file in the topology_template section in the inputs section.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@schemaLocation
+optional

An url pointing to type description - we do not use it in nbi Beijing release

string

@type
+optional

This attribute allows to dynamically extends TMF class. Valued with: 'ONAPserviceCharacteristic'. We do not used this features in nbi Beijing release.

string

description
+optional

A narrative that explains in detail what the characteristic is - Filled with parameter_description

string

name
+optional

Name of the characteristic - Filled with parameter_name

string

required
+optional

A parameter to define if the characteristic is mandatory - Filled from parameter_required – if not fielded by default ‘true’
+Default : true

boolean

serviceSpecCharacteristicValue
+optional

< ServiceSpecCharacteristicValue > array

status
+optional

Status of the characteristic - filled with status_value

string

valueType
+optional

A kind of value that the characteristic can take on, such as numeric, text and so forth - Filled with parameter_type

string

+
+
+

ServiceSpecCharacteristicValue

+
+

A number or text that can be assigned to a service specification characteristic. +ServiceSpecCharacteristicValue are retrieved in the service Tosca file

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

isDefault
+optional

Information calculated from parameter default in the Tosca file

boolean

value
+optional

A discrete value that the characteristic can take on

string

valueType
+optional

A kind of value that the characteristic can take on, such as numeric, text, and so forth +Retrieved in the Tosca in the topology_template section in the inputs section - parameter_type. +We do not manage parameter_type= list or map for Beijing release

string

+
+
+

ServiceSpecification

+
+

ServiceSpecification is a class that offers characteristics to describe a type of service. Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics. +the service information are retrieved in SDC

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@baseType
+optional

Not used for Beijing release

string

@schemaLocation
+optional

Not used for Beijing release

string

@type
+optional

This attribute allows to dynamically extends TMF class. Valued with 'ONAPservice'. We used this features to add following attributes: +invariantUUID +toscaModelURL +toscaResourceName +category (1) +subcategory (1) +distributionStatus
+Default : "ONAPservice"

string

attachment
+optional

< Attachment > array

category
+optional

Additional attribute - extended through @type - category +Please note that this attribute is managed in TMF - in future release we’ll introduce category resource

string

description
+optional

A narrative that explains in detail what the service specification is - Filled with SDC Service description

string

distributionStatus
+optional

DistributionStatus

href
+optional

Reference of the service specification- not mapped in Beijing

string

id
+optional

Unique identifier of the service specification. Filled with SDC Service uuid

string

invariantUUID
+required

Additional attribute (not in the TMF API) - extended through @type - invariantUUID

string

lifecycleStatus
+optional

LifecycleStatusValues

name
+optional

Name of the service specification- Filled with SDC Service name

string

relatedParty
+optional

< RelatedPartyRef > array

resourceSpecification
+optional

< ResourceSpecificationRef > array

serviceSpecCharacteristic
+optional

< ServiceSpecCharacteristic > array

subcategory
+optional

Additional attribute - extended through @type - category +Please note that this attribute is managed in TMF - in future release we’ll introduce category resourc

string

targetServiceSchema
+optional

TargetServiceSchemaRef

toscaModelURL
+optional

Additional attribute (not in the TMF API) - extended through @type - toscaModelURL

string

toscaResourceName
+optional

Additional attribute (not in the TMF API) - extended through @type - toscaResourceName

string

version
+optional

Service specification version - Filled with SDC Service version

string

+
+
+

TargetServiceSchemaRef

+ ++++ + + + + + + + + + + + + + + + + +
NameSchema

@schemaLocation
+required

string

@type
+required

string

+
+
+

TimePeriod

+
+

A time period

+
+ +++++ + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

endDateTime
+optional

End date and time of the period

string (date-time)

startDateTime
+optional

Start date and time of the period

string (date-time)

+
+
+
+
+ + + \ No newline at end of file diff --git a/docs/offeredapis/serviceCatalog/markDown.md b/docs/offeredapis/serviceCatalog/markDown.md new file mode 100644 index 0000000..4d066c3 --- /dev/null +++ b/docs/offeredapis/serviceCatalog/markDown.md @@ -0,0 +1,294 @@ +# API ServiceCatalog + + + +## Overview + +### Api URL + +[Swagger UI](https://api-designer.sso.infra.ftgroup/swagger-ui/?url=https://api-designer.sso.infra.ftgroup/api/1.0/apis/N3ma89X1x0/swagger.json) + + +[plant UML UI](https://plantuml.rd.francetelecom.fr/proxy?fmt=svg&src=https://api-designer.sso.infra.ftgroup/api/1.0/apis/N3ma89X1x0/plantuml&noCache=797767.0) + +serviceCatalog API designed for ONAP Beijing Release. +This API is build from TMF open API17.5. +Only operation GET (by id & byList) for resource serviceSpecification is available + + +### Version information +*Version* : 1.0.0_inProgress + + +### URI scheme +*Host* : serverRoot +*BasePath* : /nbi/api/v1 +*Schemes* : HTTPS + + +### Tags + +* ServiceSpecification + + +### Consumes + +* `application/json;charset=utf-8` + + +### Produces + +* `application/json;charset=utf-8` + + + +## Resources + + +### ServiceSpecification + + +#### List service specifications +``` +GET /serviceSpecification +``` + + +##### Description +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 + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + +##### Parameters + +|Type|Name|Description|Schema| +|---|---|---|---| +|**Query**|**category**
*optional*|Service Category (filter)|string| +|**Query**|**distributionStatus**
*optional*|Service distribution status (filter)|string| +|**Query**|**fields**
*optional*|Field selection - used to filtering the attributes to be retreived|string| + + +##### Responses + +|HTTP Code|Description|Schema| +|---|---|---| +|**200**|Success|< [ServiceSpecification](#servicespecification) > array| +|**400**|Bad Request

List of supported error codes:
- 20: Invalid URL parameter value
- 21: Missing body
- 22: Invalid body
- 23: Missing body field
- 24: Invalid body field
- 25: Missing header
- 26: Invalid header value
- 27: Missing query-string parameter
- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)| +|**401**|Unauthorized

List of supported error codes:
- 40: Missing credentials
- 41: Invalid credentials
- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)| +|**403**|Forbidden

List of supported error codes:
- 50: Access denied
- 51: Forbidden requester
- 52: Forbidden user
- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)| +|**404**|Not Found

List of supported error codes:
- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)| +|**422**|Unprocessable entity

Functional error|[ErrorRepresentation](#errorrepresentation)| +|**500**|Internal Server Error

List of supported error codes:
- 1: Internal error|[ErrorRepresentation](#errorrepresentation)| +|**503**|Service Unavailable

List of supported error codes:
- 5: The service is temporarily unavailable
- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)| + + + +#### Retrieve a service specification +``` +GET /serviceSpecification/{id} +``` + + +##### Description +This operation returns a service specification by its id from a catalog. Attribute selection is enabled using the fields attribute. + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + +##### Parameters + +|Type|Name|Description|Schema| +|---|---|---|---| +|**Path**|**id**
*required*||string| +|**Query**|**fields**
*optional*|Attribute selection|string| + + +##### Responses + +|HTTP Code|Description|Schema| +|---|---|---| +|**200**|Success|[ServiceSpecification](#servicespecification)| +|**400**|Bad Request

List of supported error codes:
- 20: Invalid URL parameter value
- 21: Missing body
- 22: Invalid body
- 23: Missing body field
- 24: Invalid body field
- 25: Missing header
- 26: Invalid header value
- 27: Missing query-string parameter
- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)| +|**401**|Unauthorized

List of supported error codes:
- 40: Missing credentials
- 41: Invalid credentials
- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)| +|**403**|Forbidden

List of supported error codes:
- 50: Access denied
- 51: Forbidden requester
- 52: Forbidden user
- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)| +|**404**|Not Found

List of supported error codes:
- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)| +|**422**|Unprocessable entity

Functional error|[ErrorRepresentation](#errorrepresentation)| +|**500**|Internal Server Error

List of supported error codes:
- 1: Internal error|[ErrorRepresentation](#errorrepresentation)| +|**503**|Service Unavailable

List of supported error codes:
- 5: The service is temporarily unavailable
- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)| + + + +## Definitions + + +### Attachment +An attachment is a file uses to describe the service. +In nbi we use attachment to retrieve ONAP artifacts. + + +|Name|Description|Schema| +|---|---|---| +|**@type**
*optional*|This attribute allows to dynamically extends TMF class. Valued with 'ONAPartifact'. We used this features to add following attributes:
artifactLabel
artifactGroupType
artifactTimeout
artifactChecksum
artifactVersion
generatedFromUUID
**Default** : `"ONAPartifact"`|string| +|**artifactChecksum**
*optional*|Additional attribute (not in the TMF API) - extended through @type - artifactChecksum|string| +|**artifactGroupType**
*optional*|Additional attribute (not in the TMF API) - extended through @type - artifactGroupType|string| +|**artifactLabel**
*optional*|Additional attribute (not in the TMF API) - extended through @type - artifactLabel|string| +|**artifactTimeout**
*optional*|Additional attribute (not in the TMF API) - extended through @type - artifactTimeout|string| +|**artifactVersion**
*optional*|Additional attribute (not in the TMF API) - extended through @type - artifactVersion|string| +|**description**
*optional*|Description of the attachment - filled with artifactDescription|string| +|**generatedFromUUID**
*optional*|Additional attribute (not in the TMF API) - extended through @type - generatedFromUUID|string| +|**id**
*optional*|Unique identifier of the attachment - filled with artifactUUID.|string| +|**mimeType**
*optional*|Filled with artifactType|string| +|**name**
*optional*|Name of the attachment - filled with artifactName|string| +|**url**
*optional*|Uniform Resource Locator, is a web page address - filled with artifactURL|string| + + + +### DistributionStatus +Service distribution status from ONAP. + +*Type* : enum (DISTRIBUTION_NOT_APPROVED, DISTRIBUTION_APPROVED, DISTRIBUTED, DISTRIBUTION_REJECTED) + + + +### ErrorRepresentation +This class is used to describe error. +for nbi Beijing release we do not manage additional error for serviceCatalog + + +|Name|Description|Schema| +|---|---|---| +|**@schemaLocation**
*optional*|it provides a link to the schema describing a REST resource.|string| +|**@type**
*optional*|The class type of a REST resource.|string| +|**code**
*required*|Application related code (as defined in the API or from a common list)|integer (int32)| +|**message**
*optional*|Text that provide more details and corrective actions related to the error. This can be shown to a client user|string| +|**reason**
*required*|Text that explains the reason for error. This can be shown to a client user.|string| +|**referenceErrror**
*optional*|url pointing to documentation describing the error|string| +|**status**
*optional*|http error code extension like 400-2|string| + + + +### LifecycleStatusValues +Service lifecycle value from ONAP SDC + +*Type* : enum (NOT_CERTIFIED_CHECKOUT, NOT_CERTIFIED_CHECKIN, READY_FOR_CERTIFICATION, CERTIFICATION_IN_PROGRESS, CERTIFIED) + + + +### RelatedPartyRef +Party linked to the service catalog. +in nbi we retrieve information about last updater of the service in SDC + + +|Name|Description|Schema| +|---|---|---| +|**id**
*optional*|Unique identifier of the related party. Filled with lastUpdaterUserId|string| +|**name**
*optional*|Name of the related party - Filled with lastUpdatedFullName|string| +|**role**
*optional*|Role payed by the related party
Only role 'lastUpdater' is retrieved in Beijing release|string| + + + +### ResourceSpecificationRef +A list of resourceSpec identified to deliver the service. +for nbi we retrieve resource information available in service description (through SDC api) bu as well information retrieved in the TOSCA file. + + +|Name|Description|Schema| +|---|---|---| +|**@type**
*optional*|This attribute allows to dynamically extends TMF class. Valued with: 'ONAPresource'. We used this features to add following attributes:
resourceInstanceName
resourceInvariantUUID
resourceType
modelCustomizationName
modelCustomizationId
**Default** : `"ONAPresource"`|string| +|**id**
*optional*|Unique identifier of the resource specification - filled with resourceUUID|string| +|**modelCustomizationId**
*optional*|Additional attribute (not in the TMF API) - extended through @type - Retrieved in the TOSCA file : attribute customizationUUID in topology_template/node_template for the resource|string| +|**modelCustomizationName**
*optional*|Additional attribute (not in the TMF API) - extended through @type - Retrieved in the TOSCA file : attribute name in topology_template/node_template for the resource|string| +|**name**
*optional*|Name of the resource specification - filled with resourceName|string| +|**resourceInstanceName**
*optional*|Additional attribute (not in the TMF API) - extended through @type - resourceInstanceName|string| +|**resourceInvariantUUID**
*optional*|Additional attribute (not in the TMF API) - extended through @type - resourceInvariantUUID|string| +|**resourceType**
*optional*|Additional attribute (not in the TMF API) - extended through @type - resoucreType|string| +|**version**
*optional*|Version for this resource specification - filled with resourceVersion|string| + + + +### ServiceSpecCharacteristic +A characteristic quality or distinctive feature of a ServiceSpecification. +ServiceSpecCharacteristic are retrieved in the serviceTosca file in the topology_template section in the inputs section. + + +|Name|Description|Schema| +|---|---|---| +|**@schemaLocation**
*optional*|An url pointing to type description - we do not use it in nbi Beijing release|string| +|**@type**
*optional*|This attribute allows to dynamically extends TMF class. Valued with: 'ONAPserviceCharacteristic'. We do not used this features in nbi Beijing release.|string| +|**description**
*optional*|A narrative that explains in detail what the characteristic is - Filled with parameter_description|string| +|**name**
*optional*|Name of the characteristic - Filled with parameter_name|string| +|**required**
*optional*|A parameter to define if the characteristic is mandatory - Filled from parameter_required – if not fielded by default ‘true’
**Default** : `true`|boolean| +|**serviceSpecCharacteristicValue**
*optional*||< [ServiceSpecCharacteristicValue](#servicespeccharacteristicvalue) > array| +|**status**
*optional*|Status of the characteristic - filled with status_value|string| +|**valueType**
*optional*|A kind of value that the characteristic can take on, such as numeric, text and so forth - Filled with parameter_type|string| + + + +### ServiceSpecCharacteristicValue +A number or text that can be assigned to a service specification characteristic. +ServiceSpecCharacteristicValue are retrieved in the service Tosca file + + +|Name|Description|Schema| +|---|---|---| +|**isDefault**
*optional*|Information calculated from parameter default in the Tosca file|boolean| +|**value**
*optional*|A discrete value that the characteristic can take on|string| +|**valueType**
*optional*|A kind of value that the characteristic can take on, such as numeric, text, and so forth
Retrieved in the Tosca in the topology_template section in the inputs section - parameter_type.
We do not manage parameter_type= list or map for Beijing release|string| + + + +### ServiceSpecification +ServiceSpecification is a class that offers characteristics to describe a type of service. Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics. +the service information are retrieved in SDC + + +|Name|Description|Schema| +|---|---|---| +|**@baseType**
*optional*|Not used for Beijing release|string| +|**@schemaLocation**
*optional*|Not used for Beijing release|string| +|**@type**
*optional*|This attribute allows to dynamically extends TMF class. Valued with 'ONAPservice'. We used this features to add following attributes:
invariantUUID
toscaModelURL
toscaResourceName
category (1)
subcategory (1)
distributionStatus
**Default** : `"ONAPservice"`|string| +|**attachment**
*optional*||< [Attachment](#attachment) > array| +|**category**
*optional*|Additional attribute - extended through @type - category
Please note that this attribute is managed in TMF - in future release we'll introduce category resource|string| +|**description**
*optional*|A narrative that explains in detail what the service specification is - Filled with SDC Service description|string| +|**distributionStatus**
*optional*||[DistributionStatus](#distributionstatus)| +|**href**
*optional*|Reference of the service specification- not mapped in Beijing|string| +|**id**
*optional*|Unique identifier of the service specification. Filled with SDC Service uuid|string| +|**invariantUUID**
*required*|Additional attribute (not in the TMF API) - extended through @type - invariantUUID|string| +|**lifecycleStatus**
*optional*||[LifecycleStatusValues](#lifecyclestatusvalues)| +|**name**
*optional*|Name of the service specification- Filled with SDC Service name|string| +|**relatedParty**
*optional*||< [RelatedPartyRef](#relatedpartyref) > array| +|**resourceSpecification**
*optional*||< [ResourceSpecificationRef](#resourcespecificationref) > array| +|**serviceSpecCharacteristic**
*optional*||< [ServiceSpecCharacteristic](#servicespeccharacteristic) > array| +|**subcategory**
*optional*|Additional attribute - extended through @type - category
Please note that this attribute is managed in TMF - in future release we'll introduce category resourc|string| +|**targetServiceSchema**
*optional*||[TargetServiceSchemaRef](#targetserviceschemaref)| +|**toscaModelURL**
*optional*|Additional attribute (not in the TMF API) - extended through @type - toscaModelURL|string| +|**toscaResourceName**
*optional*|Additional attribute (not in the TMF API) - extended through @type - toscaResourceName|string| +|**version**
*optional*|Service specification version - Filled with SDC Service version|string| + + + +### TargetServiceSchemaRef + +|Name|Schema| +|---|---| +|**@schemaLocation**
*required*|string| +|**@type**
*required*|string| + + + +### TimePeriod +A time period + + +|Name|Description|Schema| +|---|---|---| +|**endDateTime**
*optional*|End date and time of the period|string (date-time)| +|**startDateTime**
*optional*|Start date and time of the period|string (date-time)| + diff --git a/docs/offeredapis/serviceInventory/apiServiceInventory.plantuml b/docs/offeredapis/serviceInventory/apiServiceInventory.plantuml new file mode 100644 index 0000000..447f3fe --- /dev/null +++ b/docs/offeredapis/serviceInventory/apiServiceInventory.plantuml @@ -0,0 +1,97 @@ +@startuml + +enum stateValues { + feasibilityChecked + designed + reserved + inactive + active + terminated +} + +class ErrorRepresentation { + code:int + reason:string + message:string + status:string + referenceError:string + @type:string + @schemaLocation:string +} + +class Service { + id:string + href:string + name:string + type:string + hasStarted:boolean + @type:string + @baseType:string + @schemaLocation:string +} + Service --> "0-1" stateValues : state + Service --> "0-1" ServiceSpecificationRef : serviceSpecification + Service --> "0-*" ServiceCharacteristic : characteristic + Service --> "0-*" SupportingResource : supportingResource + Service --> "0-*" RelatedPartyRef : relatedParty + +class ServiceSpecificationRef { + id:string + href:string + name:string + version:string + @referredType:string + @schemaLocation:string + invariantUUID:string +} + +class ServiceCharacteristic { + name:string + valueType:string +} + ServiceCharacteristic --> "0-1" Value : value + +class SupportingResource { + id:string + href:string + role:string + name:string + @referredType:string + @schemaLocation:string + status:string + modelInvariantId:string + modelVersionId:string + modelCustomisationId:string +} + +class RelatedPartyRef { + id:string + href:string + role:string + @referredType:string +} + +class Value { + @type:string + @schemaLocation:string + serviceCharacteristicValue:string +} + +class ListRelatedPartyRef { + id:string + role:string +} + +class ListServiceSpecificationRef { + id:string + name:string +} + +class ListService { + id:string + name:string +} + ListService --> "0-1" ListServiceSpecificationRef : serviceSpecification + ListService --> "0-1" ListRelatedPartyRef : relatedParty + +@enduml \ No newline at end of file diff --git a/docs/offeredapis/serviceInventory/asciiDoc.adoc b/docs/offeredapis/serviceInventory/asciiDoc.adoc new file mode 100644 index 0000000..c6f51c4 --- /dev/null +++ b/docs/offeredapis/serviceInventory/asciiDoc.adoc @@ -0,0 +1,461 @@ += API ServiceInventory + + +[[_overview]] +== Overview + +=== Api URL + +https://api-designer.sso.infra.ftgroup/swagger-ui/?url=https://api-designer.sso.infra.ftgroup/api/1.0/apis/5an735gnX0/swagger.json[Swagger UI] + + +https://plantuml.rd.francetelecom.fr/proxy?fmt=svg&src=https://api-designer.sso.infra.ftgroup/api/1.0/apis/5an735gnX0/plantuml&noCache=304710.0[plant UML UI] + +serviceInventory API designed for ONAP Beijing Release. +This API is build from TMF open API18.0 (applying TMF Guideline 3.0) +only operation GET (by id & byList) for resource serviceSpecification is available + + +=== Version information +[%hardbreaks] +__Version__ : 1.0.0_inProgress + + +=== URI scheme +[%hardbreaks] +__Host__ : serverRoot +__BasePath__ : /nbi/api/v1 +__Schemes__ : HTTPS + + +=== Tags + +* Service + + +=== Consumes + +* `application/json;charset=utf-8` + + +=== Produces + +* `application/json;charset=utf-8` + + +[[_paths]] +== Resources + +[[_service_resource]] +=== Service + +[[_servicefind]] +==== List services +.... +GET /service +.... + + +===== Description +This operation list service entities. +Attribute selection is restricted. +fields attribute may be used to filter retrieved attribute(s) for each service + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + +===== Parameters + +[options="header", cols=".^2,.^3,.^4"] +|=== +|Type|Name|Schema +|**Query**|**fields** + +__optional__|string +|**Query**|**id** + +__optional__|string +|**Query**|**relatedParty.id** + +__optional__|string +|**Query**|**serviceSpecification.id** + +__optional__|string +|**Query**|**serviceSpecification.name** + +__optional__|string +|=== + + +===== Responses + +[options="header", cols=".^2,.^14,.^4"] +|=== +|HTTP Code|Description|Schema +|**200**|Success|< <<_listservice,ListService>> > array +|**400**|Bad Request + +List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>> +|**401**|Unauthorized + +List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>> +|**403**|Forbidden + +List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>> +|**404**|Not Found + +List of supported error codes: +- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>> +|**422**|Unprocessable entity + +Functional error|<<_errorrepresentation,ErrorRepresentation>> +|**500**|Internal Server Error + +List of supported error codes: +- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>> +|**503**|Service Unavailable + +List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>> +|=== + + +[[_serviceget]] +==== Retrieve a service +.... +GET /service/{id} +.... + + +===== Description +This operation retrieves a service entity. +Attribute selection is enabled for all first level attributes. + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + +===== Parameters + +[options="header", cols=".^2,.^3,.^4"] +|=== +|Type|Name|Schema +|**Path**|**id** + +__required__|string +|**Query**|**relatedParty.id** + +__optional__|string +|**Query**|**serviceSpecification.id** + +__optional__|string +|**Query**|**serviceSpecification.name** + +__optional__|string +|=== + + +===== Responses + +[options="header", cols=".^2,.^14,.^4"] +|=== +|HTTP Code|Description|Schema +|**200**|Success|<<_service,Service>> +|**400**|Bad Request + +List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>> +|**401**|Unauthorized + +List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>> +|**403**|Forbidden + +List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>> +|**404**|Not Found + +List of supported error codes: +- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>> +|**422**|Unprocessable entity + +Functional error|<<_errorrepresentation,ErrorRepresentation>> +|**500**|Internal Server Error + +List of supported error codes: +- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>> +|**503**|Service Unavailable + +List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>> +|=== + + +[[_definitions]] +== Definitions + +[[_errorrepresentation]] +=== ErrorRepresentation +This class is used to describe error. +for nbi Beijing release we do not manage additional error for serviceCatalog + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@schemaLocation** + +__optional__|it provides a link to the schema describing a REST resource.|string +|**@type** + +__optional__|The class type of a REST resource.|string +|**code** + +__required__|Application related code (as defined in the API or from a common list)|integer (int32) +|**message** + +__optional__|Text that provide more details and corrective actions related to the error. This can be shown to a client user.|string +|**reason** + +__required__|Text that explains the reason for error. This can be shown to a client user.|string +|**referenceError** + +__optional__|url pointing to documentation describing the error|string +|**status** + +__optional__|http error code extension like 400-2|string +|=== + + +[[_listrelatedpartyref]] +=== ListRelatedPartyRef +This class is used to structure list of service(s) retrieved + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**id** + +__optional__|Unique identifier of a related party|string +|**role** + +__optional__|Role played by the related party - only role “ONAPcustomer” is managed in Beijing release.|string +|=== + + +[[_listservice]] +=== ListService +This class is used to structure list of service(s) retrieved + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**id** + +__optional__|Unique identifier of the service|string +|**name** + +__optional__|Name of the service|string +|**relatedParty** + +__optional__||<<_listrelatedpartyref,ListRelatedPartyRef>> +|**serviceSpecification** + +__optional__||<<_listservicespecificationref,ListServiceSpecificationRef>> +|=== + + +[[_listservicespecificationref]] +=== ListServiceSpecificationRef +This class is used to structure list of service(s) retrieved + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**id** + +__optional__|Unique identifier of the service specification|string +|**name** + +__optional__|Name of the required service specification|string +|=== + + +[[_relatedpartyref]] +=== RelatedPartyRef +RelatedParty reference. A related party defines party or party role linked to a specific entity. +Only ONAP Customer is managed in Beijing release. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@referredType** + +__optional__|Not managed in the Beijing release.|string +|**href** + +__optional__|Reference of a related party. +Not filled in Beijing release.|string +|**id** + +__optional__|Unique identifier of a related party|string +|**role** + +__optional__|Role played by the related party. +Filled with 'ONAPcustomer'|string +|=== + + +[[_service]] +=== Service +Instantiated service (service_instance) in AAI + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@baseType** + +__optional__|Not managed in Beijing release|string +|**@schemaLocation** + +__optional__|Not managed in Beijing release|string +|**@type** + +__optional__|This attribute allows to dynamically extends TMF class. Not used in Beijing release.|string +|**characteristic** + +__optional__||< <<_servicecharacteristic,ServiceCharacteristic>> > array +|**hasStarted** + +__optional__|This is a Boolean attribute that, if TRUE, signifies that this Service has already been started. If the value of this attribute is FALSE, then this signifies that this Service has NOT been Started +Not managed in Beijing release|boolean +|**href** + +__optional__|Reference of the service +Not managed in Beijing release|string +|**id** + +__optional__|Unique identifier of the service - Valued with service-instance-id|string +|**name** + +__optional__|Name of the service - Valued with service-instance-name|string +|**relatedParty** + +__optional__||< <<_relatedpartyref,RelatedPartyRef>> > array +|**serviceSpecification** + +__optional__||<<_servicespecificationref,ServiceSpecificationRef>> +|**state** + +__optional__||<<_statevalues,stateValues>> +|**supportingResource** + +__optional__||< <<_supportingresource,SupportingResource>> > array +|**type** + +__optional__|Service type - valued with 'service-instance'|string +|=== + + +[[_servicecharacteristic]] +=== ServiceCharacteristic +A list of name value pairs that define the service characteristics +Not managed in Beijing release. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**name** + +__required__|Name of the characteristic +Not managed in Beijing release.|string +|**value** + +__optional__||<<_value,Value>> +|**valueType** + +__optional__|Type of value for this characteristic. +Not managed in Beijing release.|string +|=== + + +[[_servicespecificationref]] +=== ServiceSpecificationRef +Service specification reference: ServiceSpecification of this service (catalog information) + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@referredType** + +__optional__|This attribute allows to dynamically extends TMF class. Valued with 'ONAPservice'. We used this features to add following attribute: invariantUUID|string +|**@schemaLocation** + +__optional__|Not managed in Beijing release|string +|**href** + +__optional__|Reference of the service specification. +not managed in Beijing release.|string +|**id** + +__optional__|Unique identifier of the service specification. valued to model-version-id|string +|**invariantUUID** + +__optional__|Additional attribute (not in the TMF API) - extended through @referredType - model-invariant-id|string +|**name** + +__optional__|Name of the required service specification|string +|**version** + +__optional__|Service specification version. +Not managed in Beijing release|string +|=== + + +[[_supportingresource]] +=== SupportingResource +Supporting resource - A supportingResource will be retrieved for each relationship of the relationship-list where related-link describe a vnf + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@referredType** + +__optional__|This attribute allows to dynamically extends TMF class. Valued with 'ONAP resource'. We used this features to add following attributes: + status + modelInvariantId + modelVersionId + modelCustomisationId|string +|**@schemaLocation** + +__optional__|Not managed in Beijing release.|string +|**href** + +__optional__|Reference of the supporting resource|string +|**id** + +__optional__|Unique identifier of the supporting resource - Valued to vnf-id|string +|**modelCustomisationId** + +__optional__|Additional attribute (not in the TMF API) - extended through @referredType - valued with model-customisation-id|string +|**modelInvariantId** + +__optional__|Additional attribute (not in the TMF API) - extended through @referredType - valued with model-invariant-id|string +|**modelVersionId** + +__optional__|Additional attribute (not in the TMF API) - extended through @referredType - valued with model-verson-id|string +|**name** + +__optional__|Name of the supporting resource - Valued with vnf_-name|string +|**role** + +__optional__|Not managed in Beijing release.|string +|**status** + +__optional__|Additional attribute (not in the TMF API) - extended through @referredType - valued with prov-status|string +|=== + + +[[_value]] +=== Value +Structure used to describe characteristic value. +Not managed in Beijing release. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@schemaLocation** + +__optional__|Not managed in Beijing release.|string +|**@type** + +__optional__|Not managed in Beijing release.|string +|**serviceCharacteristicValue** + +__optional__|Not managed in Beijing release.|string +|=== + + +[[_statevalues]] +=== stateValues +__Type__ : enum (feasibilityChecked, designed, reserved, inactive, active, terminated) + diff --git a/docs/offeredapis/serviceInventory/documentation.html b/docs/offeredapis/serviceInventory/documentation.html new file mode 100644 index 0000000..905fa1b --- /dev/null +++ b/docs/offeredapis/serviceInventory/documentation.html @@ -0,0 +1,1423 @@ + + + + + + + +API ServiceInventory + + + + + +
+
+

Overview

+
+
+
+

serviceInventory API designed for ONAP Beijing Release. +This API is build from TMF open API18.0 (applying TMF Guideline 3.0) +only operation GET (by id & byList) for resource serviceSpecification is available

+
+
+
+

Version information

+
+

Version : 1.0.0_inProgress

+
+
+
+

URI scheme

+
+

Host : serverRoot
+BasePath : /nbi/api/v1
+Schemes : HTTPS

+
+
+
+

Tags

+
+
    +
  • +

    Service

    +
  • +
+
+
+
+

Consumes

+
+
    +
  • +

    application/json;charset=utf-8

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json;charset=utf-8

    +
  • +
+
+
+
+
+
+

Resources

+
+
+

Service

+
+

List services

+
+
+
GET /service
+
+
+
+
Description
+
+

This operation list service entities. +Attribute selection is restricted. +fields attribute may be used to filter retrieved attribute(s) for each service

+
+
+

Specific business errors for current operation will be encapsulated in

+
+
+

HTTP Response 422 Unprocessable entity

+
+
+
+
Parameters
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameSchema

Query

fields
+optional

string

Query

id
+optional

string

Query

relatedParty.id
+optional

string

Query

serviceSpecification.id
+optional

string

Query

serviceSpecification.name
+optional

string

+
+
+
Responses
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

Success

< ListService > array

400

Bad Request

+

List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value

ErrorRepresentation

401

Unauthorized

+

List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials

ErrorRepresentation

403

Forbidden

+

List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests

ErrorRepresentation

404

Not Found

+

List of supported error codes: +- 60: Resource not found

ErrorRepresentation

422

Unprocessable entity

+

Functional error

ErrorRepresentation

500

Internal Server Error

+

List of supported error codes: +- 1: Internal error

ErrorRepresentation

503

Service Unavailable

+

List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !

ErrorRepresentation

+
+
+
+

Retrieve a service

+
+
+
GET /service/{id}
+
+
+
+
Description
+
+

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

+
+
+

Specific business errors for current operation will be encapsulated in

+
+
+

HTTP Response 422 Unprocessable entity

+
+
+
+
Parameters
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameSchema

Path

id
+required

string

Query

relatedParty.id
+optional

string

Query

serviceSpecification.id
+optional

string

Query

serviceSpecification.name
+optional

string

+
+
+
Responses
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

Success

Service

400

Bad Request

+

List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value

ErrorRepresentation

401

Unauthorized

+

List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials

ErrorRepresentation

403

Forbidden

+

List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests

ErrorRepresentation

404

Not Found

+

List of supported error codes: +- 60: Resource not found

ErrorRepresentation

422

Unprocessable entity

+

Functional error

ErrorRepresentation

500

Internal Server Error

+

List of supported error codes: +- 1: Internal error

ErrorRepresentation

503

Service Unavailable

+

List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !

ErrorRepresentation

+
+
+
+
+
+
+

Definitions

+
+
+

ErrorRepresentation

+
+

This class is used to describe error. +for nbi Beijing release we do not manage additional error for serviceCatalog

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@schemaLocation
+optional

it provides a link to the schema describing a REST resource.

string

@type
+optional

The class type of a REST resource.

string

code
+required

Application related code (as defined in the API or from a common list)

integer (int32)

message
+optional

Text that provide more details and corrective actions related to the error. This can be shown to a client user.

string

reason
+required

Text that explains the reason for error. This can be shown to a client user.

string

referenceError
+optional

url pointing to documentation describing the error

string

status
+optional

http error code extension like 400-2

string

+
+
+

ListRelatedPartyRef

+
+

This class is used to structure list of service(s) retrieved

+
+ +++++ + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

id
+optional

Unique identifier of a related party

string

role
+optional

Role played by the related party - only role “ONAPcustomer” is managed in Beijing release.

string

+
+
+

ListService

+
+

This class is used to structure list of service(s) retrieved

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

id
+optional

Unique identifier of the service

string

name
+optional

Name of the service

string

relatedParty
+optional

ListRelatedPartyRef

serviceSpecification
+optional

ListServiceSpecificationRef

+
+
+

ListServiceSpecificationRef

+
+

This class is used to structure list of service(s) retrieved

+
+ +++++ + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

id
+optional

Unique identifier of the service specification

string

name
+optional

Name of the required service specification

string

+
+
+

RelatedPartyRef

+
+

RelatedParty reference. A related party defines party or party role linked to a specific entity. +Only ONAP Customer is managed in Beijing release.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@referredType
+optional

Not managed in the Beijing release.

string

href
+optional

Reference of a related party. +Not filled in Beijing release.

string

id
+optional

Unique identifier of a related party

string

role
+optional

Role played by the related party. +Filled with 'ONAPcustomer'

string

+
+
+

Service

+
+

Instantiated service (service_instance) in AAI

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@baseType
+optional

Not managed in Beijing release

string

@schemaLocation
+optional

Not managed in Beijing release

string

@type
+optional

This attribute allows to dynamically extends TMF class. Not used in Beijing release.

string

characteristic
+optional

< ServiceCharacteristic > array

hasStarted
+optional

This is a Boolean attribute that, if TRUE, signifies that this Service has already been started. If the value of this attribute is FALSE, then this signifies that this Service has NOT been Started +Not managed in Beijing release

boolean

href
+optional

Reference of the service +Not managed in Beijing release

string

id
+optional

Unique identifier of the service - Valued with service-instance-id

string

name
+optional

Name of the service - Valued with service-instance-name

string

relatedParty
+optional

< RelatedPartyRef > array

serviceSpecification
+optional

ServiceSpecificationRef

state
+optional

stateValues

supportingResource
+optional

< SupportingResource > array

type
+optional

Service type - valued with 'service-instance'

string

+
+
+

ServiceCharacteristic

+
+

A list of name value pairs that define the service characteristics +Not managed in Beijing release.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

name
+required

Name of the characteristic +Not managed in Beijing release.

string

value
+optional

Value

valueType
+optional

Type of value for this characteristic. +Not managed in Beijing release.

string

+
+
+

ServiceSpecificationRef

+
+

Service specification reference: ServiceSpecification of this service (catalog information)

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@referredType
+optional

This attribute allows to dynamically extends TMF class. Valued with 'ONAPservice'. We used this features to add following attribute: invariantUUID

string

@schemaLocation
+optional

Not managed in Beijing release

string

href
+optional

Reference of the service specification. +not managed in Beijing release.

string

id
+optional

Unique identifier of the service specification. valued to model-version-id

string

invariantUUID
+optional

Additional attribute (not in the TMF API) - extended through @referredType - model-invariant-id

string

name
+optional

Name of the required service specification

string

version
+optional

Service specification version. +Not managed in Beijing release

string

+
+
+

SupportingResource

+
+

Supporting resource - A supportingResource will be retrieved for each relationship of the relationship-list where related-link describe a vnf

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@referredType
+optional

This attribute allows to dynamically extends TMF class. Valued with 'ONAP resource'. We used this features to add following attributes: + status + modelInvariantId + modelVersionId + modelCustomisationId

string

@schemaLocation
+optional

Not managed in Beijing release.

string

href
+optional

Reference of the supporting resource

string

id
+optional

Unique identifier of the supporting resource - Valued to vnf-id

string

modelCustomisationId
+optional

Additional attribute (not in the TMF API) - extended through @referredType - valued with model-customisation-id

string

modelInvariantId
+optional

Additional attribute (not in the TMF API) - extended through @referredType - valued with model-invariant-id

string

modelVersionId
+optional

Additional attribute (not in the TMF API) - extended through @referredType - valued with model-verson-id

string

name
+optional

Name of the supporting resource - Valued with vnf_-name

string

role
+optional

Not managed in Beijing release.

string

status
+optional

Additional attribute (not in the TMF API) - extended through @referredType - valued with prov-status

string

+
+
+

Value

+
+

Structure used to describe characteristic value. +Not managed in Beijing release.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@schemaLocation
+optional

Not managed in Beijing release.

string

@type
+optional

Not managed in Beijing release.

string

serviceCharacteristicValue
+optional

Not managed in Beijing release.

string

+
+
+

stateValues

+
+

Type : enum (feasibilityChecked, designed, reserved, inactive, active, terminated)

+
+
+
+
+
+ + + \ No newline at end of file diff --git a/docs/offeredapis/serviceInventory/markDown.md b/docs/offeredapis/serviceInventory/markDown.md new file mode 100644 index 0000000..3b02751 --- /dev/null +++ b/docs/offeredapis/serviceInventory/markDown.md @@ -0,0 +1,287 @@ +# API ServiceInventory + + + +## Overview + +### Api URL + +[Swagger UI](https://api-designer.sso.infra.ftgroup/swagger-ui/?url=https://api-designer.sso.infra.ftgroup/api/1.0/apis/5an735gnX0/swagger.json) + + +[plant UML UI](https://plantuml.rd.francetelecom.fr/proxy?fmt=svg&src=https://api-designer.sso.infra.ftgroup/api/1.0/apis/5an735gnX0/plantuml&noCache=304710.0) + +serviceInventory API designed for ONAP Beijing Release. +This API is build from TMF open API18.0 (applying TMF Guideline 3.0) +only operation GET (by id & byList) for resource serviceSpecification is available + + +### Version information +*Version* : 1.0.0_inProgress + + +### URI scheme +*Host* : serverRoot +*BasePath* : /nbi/api/v1 +*Schemes* : HTTPS + + +### Tags + +* Service + + +### Consumes + +* `application/json;charset=utf-8` + + +### Produces + +* `application/json;charset=utf-8` + + + +## Resources + + +### Service + + +#### List services +``` +GET /service +``` + + +##### Description +This operation list service entities. +Attribute selection is restricted. +fields attribute may be used to filter retrieved attribute(s) for each service + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + +##### Parameters + +|Type|Name|Schema| +|---|---|---| +|**Query**|**fields**
*optional*|string| +|**Query**|**id**
*optional*|string| +|**Query**|**relatedParty.id**
*optional*|string| +|**Query**|**serviceSpecification.id**
*optional*|string| +|**Query**|**serviceSpecification.name**
*optional*|string| + + +##### Responses + +|HTTP Code|Description|Schema| +|---|---|---| +|**200**|Success|< [ListService](#listservice) > array| +|**400**|Bad Request

List of supported error codes:
- 20: Invalid URL parameter value
- 21: Missing body
- 22: Invalid body
- 23: Missing body field
- 24: Invalid body field
- 25: Missing header
- 26: Invalid header value
- 27: Missing query-string parameter
- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)| +|**401**|Unauthorized

List of supported error codes:
- 40: Missing credentials
- 41: Invalid credentials
- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)| +|**403**|Forbidden

List of supported error codes:
- 50: Access denied
- 51: Forbidden requester
- 52: Forbidden user
- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)| +|**404**|Not Found

List of supported error codes:
- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)| +|**422**|Unprocessable entity

Functional error|[ErrorRepresentation](#errorrepresentation)| +|**500**|Internal Server Error

List of supported error codes:
- 1: Internal error|[ErrorRepresentation](#errorrepresentation)| +|**503**|Service Unavailable

List of supported error codes:
- 5: The service is temporarily unavailable
- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)| + + + +#### Retrieve a service +``` +GET /service/{id} +``` + + +##### Description +This operation retrieves a service entity. +Attribute selection is enabled for all first level attributes. + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + +##### Parameters + +|Type|Name|Schema| +|---|---|---| +|**Path**|**id**
*required*|string| +|**Query**|**relatedParty.id**
*optional*|string| +|**Query**|**serviceSpecification.id**
*optional*|string| +|**Query**|**serviceSpecification.name**
*optional*|string| + + +##### Responses + +|HTTP Code|Description|Schema| +|---|---|---| +|**200**|Success|[Service](#service)| +|**400**|Bad Request

List of supported error codes:
- 20: Invalid URL parameter value
- 21: Missing body
- 22: Invalid body
- 23: Missing body field
- 24: Invalid body field
- 25: Missing header
- 26: Invalid header value
- 27: Missing query-string parameter
- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)| +|**401**|Unauthorized

List of supported error codes:
- 40: Missing credentials
- 41: Invalid credentials
- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)| +|**403**|Forbidden

List of supported error codes:
- 50: Access denied
- 51: Forbidden requester
- 52: Forbidden user
- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)| +|**404**|Not Found

List of supported error codes:
- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)| +|**422**|Unprocessable entity

Functional error|[ErrorRepresentation](#errorrepresentation)| +|**500**|Internal Server Error

List of supported error codes:
- 1: Internal error|[ErrorRepresentation](#errorrepresentation)| +|**503**|Service Unavailable

List of supported error codes:
- 5: The service is temporarily unavailable
- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)| + + + +## Definitions + + +### ErrorRepresentation +This class is used to describe error. +for nbi Beijing release we do not manage additional error for serviceCatalog + + +|Name|Description|Schema| +|---|---|---| +|**@schemaLocation**
*optional*|it provides a link to the schema describing a REST resource.|string| +|**@type**
*optional*|The class type of a REST resource.|string| +|**code**
*required*|Application related code (as defined in the API or from a common list)|integer (int32)| +|**message**
*optional*|Text that provide more details and corrective actions related to the error. This can be shown to a client user.|string| +|**reason**
*required*|Text that explains the reason for error. This can be shown to a client user.|string| +|**referenceError**
*optional*|url pointing to documentation describing the error|string| +|**status**
*optional*|http error code extension like 400-2|string| + + + +### ListRelatedPartyRef +This class is used to structure list of service(s) retrieved + + +|Name|Description|Schema| +|---|---|---| +|**id**
*optional*|Unique identifier of a related party|string| +|**role**
*optional*|Role played by the related party - only role “ONAPcustomer” is managed in Beijing release.|string| + + + +### ListService +This class is used to structure list of service(s) retrieved + + +|Name|Description|Schema| +|---|---|---| +|**id**
*optional*|Unique identifier of the service|string| +|**name**
*optional*|Name of the service|string| +|**relatedParty**
*optional*||[ListRelatedPartyRef](#listrelatedpartyref)| +|**serviceSpecification**
*optional*||[ListServiceSpecificationRef](#listservicespecificationref)| + + + +### ListServiceSpecificationRef +This class is used to structure list of service(s) retrieved + + +|Name|Description|Schema| +|---|---|---| +|**id**
*optional*|Unique identifier of the service specification|string| +|**name**
*optional*|Name of the required service specification|string| + + + +### RelatedPartyRef +RelatedParty reference. A related party defines party or party role linked to a specific entity. +Only ONAP Customer is managed in Beijing release. + + +|Name|Description|Schema| +|---|---|---| +|**@referredType**
*optional*|Not managed in the Beijing release.|string| +|**href**
*optional*|Reference of a related party.
Not filled in Beijing release.|string| +|**id**
*optional*|Unique identifier of a related party|string| +|**role**
*optional*|Role played by the related party.
Filled with 'ONAPcustomer'|string| + + + +### Service +Instantiated service (service_instance) in AAI + + +|Name|Description|Schema| +|---|---|---| +|**@baseType**
*optional*|Not managed in Beijing release|string| +|**@schemaLocation**
*optional*|Not managed in Beijing release|string| +|**@type**
*optional*|This attribute allows to dynamically extends TMF class. Not used in Beijing release.|string| +|**characteristic**
*optional*||< [ServiceCharacteristic](#servicecharacteristic) > array| +|**hasStarted**
*optional*|This is a Boolean attribute that, if TRUE, signifies that this Service has already been started. If the value of this attribute is FALSE, then this signifies that this Service has NOT been Started
Not managed in Beijing release|boolean| +|**href**
*optional*|Reference of the service
Not managed in Beijing release|string| +|**id**
*optional*|Unique identifier of the service - Valued with service-instance-id|string| +|**name**
*optional*|Name of the service - Valued with service-instance-name|string| +|**relatedParty**
*optional*||< [RelatedPartyRef](#relatedpartyref) > array| +|**serviceSpecification**
*optional*||[ServiceSpecificationRef](#servicespecificationref)| +|**state**
*optional*||[stateValues](#statevalues)| +|**supportingResource**
*optional*||< [SupportingResource](#supportingresource) > array| +|**type**
*optional*|Service type - valued with 'service-instance'|string| + + + +### ServiceCharacteristic +A list of name value pairs that define the service characteristics +Not managed in Beijing release. + + +|Name|Description|Schema| +|---|---|---| +|**name**
*required*|Name of the characteristic
Not managed in Beijing release.|string| +|**value**
*optional*||[Value](#value)| +|**valueType**
*optional*|Type of value for this characteristic.
Not managed in Beijing release.|string| + + + +### ServiceSpecificationRef +Service specification reference: ServiceSpecification of this service (catalog information) + + +|Name|Description|Schema| +|---|---|---| +|**@referredType**
*optional*|This attribute allows to dynamically extends TMF class. Valued with 'ONAPservice'. We used this features to add following attribute: invariantUUID|string| +|**@schemaLocation**
*optional*|Not managed in Beijing release|string| +|**href**
*optional*|Reference of the service specification.
not managed in Beijing release.|string| +|**id**
*optional*|Unique identifier of the service specification. valued to model-version-id|string| +|**invariantUUID**
*optional*|Additional attribute (not in the TMF API) - extended through @referredType - model-invariant-id|string| +|**name**
*optional*|Name of the required service specification|string| +|**version**
*optional*|Service specification version.
Not managed in Beijing release|string| + + + +### SupportingResource +Supporting resource - A supportingResource will be retrieved for each relationship of the relationship-list where related-link describe a vnf + + +|Name|Description|Schema| +|---|---|---| +|**@referredType**
*optional*|This attribute allows to dynamically extends TMF class. Valued with 'ONAP resource'. We used this features to add following attributes:
status
modelInvariantId
modelVersionId
modelCustomisationId|string| +|**@schemaLocation**
*optional*|Not managed in Beijing release.|string| +|**href**
*optional*|Reference of the supporting resource|string| +|**id**
*optional*|Unique identifier of the supporting resource - Valued to vnf-id|string| +|**modelCustomisationId**
*optional*|Additional attribute (not in the TMF API) - extended through @referredType - valued with model-customisation-id|string| +|**modelInvariantId**
*optional*|Additional attribute (not in the TMF API) - extended through @referredType - valued with model-invariant-id|string| +|**modelVersionId**
*optional*|Additional attribute (not in the TMF API) - extended through @referredType - valued with model-verson-id|string| +|**name**
*optional*|Name of the supporting resource - Valued with vnf_-name|string| +|**role**
*optional*|Not managed in Beijing release.|string| +|**status**
*optional*|Additional attribute (not in the TMF API) - extended through @referredType - valued with prov-status|string| + + + +### Value +Structure used to describe characteristic value. +Not managed in Beijing release. + + +|Name|Description|Schema| +|---|---|---| +|**@schemaLocation**
*optional*|Not managed in Beijing release.|string| +|**@type**
*optional*|Not managed in Beijing release.|string| +|**serviceCharacteristicValue**
*optional*|Not managed in Beijing release.|string| + + + +### stateValues +*Type* : enum (feasibilityChecked, designed, reserved, inactive, active, terminated) + diff --git a/docs/offeredapis/serviceOrder/apiServiceOrder.plantuml b/docs/offeredapis/serviceOrder/apiServiceOrder.plantuml new file mode 100644 index 0000000..3199855 --- /dev/null +++ b/docs/offeredapis/serviceOrder/apiServiceOrder.plantuml @@ -0,0 +1,168 @@ +@startuml + +enum ActionType { + add + modify + delete + noChange +} +enum StateType { + acknowledged + rejected + pending + held + inProgress + cancelled + completed + failed + partial +} +enum RelationshipType { + reliesOn +} + +class ErrorRepresentation { + code:int + reason:string + message:string + status:string + referenceError:string + @type:string + @schemaLocation:string +} + +class ServiceRelationship + ServiceRelationship --> "1-1" RelationshipType : type + ServiceRelationship --> "1-1" Service : service + +class ServiceRef { + id:string + href:string +} + +class ServiceCharacteristic { + name:string + valueType:string +} + ServiceCharacteristic --> "0-1" Value : value + +class RelatedParty { + id:string + href:string + role:string + name:string + @referredType:string +} + +class ServiceSpecificationRef { + id:string + href:string + name:string + version:string + @type:string + @schemaLocation:string + @baseType:string +} + ServiceSpecificationRef --> "0-1" TargetServiceSchema : targetServiceSchema + +class Service { + id:string + href:string + name:string + serviceState:string + @type:string + @schemaLocation:string +} + Service --> "0-*" ServiceCharacteristic : serviceCharacteristic + Service --> "0-*" ServiceRelationship : serviceRelationship + Service --> "0-*" RelatedParty : relatedParty + Service --> "0-1" ServiceSpecificationRef : serviceSpecification + +class OrderItemRelationship { + id:string +} + OrderItemRelationship --> "1-1" RelationshipType : type + +class ServiceOrderItem { + id:string + @type:string + @schemaLocation:string + @baseType:string +} + ServiceOrderItem --> "0-1" ActionType : action + ServiceOrderItem --> "0-1" StateType : state + ServiceOrderItem --> "0-*" OrderItemRelationship : orderItemRelationship + ServiceOrderItem --> "1-1" Service : service + +class ServiceOrder { + id:string + href:string + externalId:string + priority:string + description:string + category:string + orderDate:dateTime + completionDateTime:dateTime + requestedStartDate:dateTime + requestedCompletionDate:dateTime + expectedCompletionDate:dateTime + startDate:dateTime + @baseType:string + @type:string + @schemaLocation:string +} + ServiceOrder --> "0-1" StateType : state + ServiceOrder --> "0-*" RelatedParty : relatedParty + ServiceOrder --> "0-*" OrderRelationship : orderRelationship + ServiceOrder --> "0-*" ServiceOrderItem : orderItem + +class OrderRelationship { + type:string + id:string + href:string + @referredType:string +} + +class TargetServiceSchema { + @type:string + @schemaLocation:string +} + +class Value { + @type:string + @schemaLocation:string + serviceCharacteristicValue:string +} + +class CreateServiceOrderItem { + id:string + @type:string + @schemaLocation:string + @baseType:string +} + CreateServiceOrderItem --> "0-1" ActionType : action + CreateServiceOrderItem --> "0-*" OrderItemRelationship : orderItemRelationship + CreateServiceOrderItem --> "1-1" Service : service + +class CreateServiceOrder { + externalId:string + priority:string + description:string + category:string + requestedStartDate:dateTime + requestedCompletionDate:dateTime + @baseType:string + @type:string + @schemaLocation:string +} + CreateServiceOrder --> "0-*" RelatedParty : relatedParty + CreateServiceOrder --> "0-*" OrderRelationship : orderRelationship + CreateServiceOrder --> "0-*" CreateServiceOrderItem : orderItem + +class Hub { + id:string + query:string + callback:string +} + +@enduml \ No newline at end of file diff --git a/docs/offeredapis/serviceOrder/asciiDoc.adoc b/docs/offeredapis/serviceOrder/asciiDoc.adoc new file mode 100644 index 0000000..4a29548 --- /dev/null +++ b/docs/offeredapis/serviceOrder/asciiDoc.adoc @@ -0,0 +1,752 @@ += API ServiceOrder + + +[[_overview]] +== Overview + +=== Api URL + +https://api-designer.sso.infra.ftgroup/swagger-ui/?url=https://api-designer.sso.infra.ftgroup/api/1.0/apis/kl1kgvz1zR/swagger.json[Swagger UI] + + +https://plantuml.rd.francetelecom.fr/proxy?fmt=svg&src=https://api-designer.sso.infra.ftgroup/api/1.0/apis/kl1kgvz1zR/plantuml&noCache=934804.0[plant UML UI] + +serviceOrder API designed for ONAP Beijing Release. +This API is build from TMF open API18.0 (applying TMF Guideline 3.0); +Only operations GET (by id and list) and POST are available. + + +=== Version information +[%hardbreaks] +__Version__ : 1.0.0_inProgress + + +=== URI scheme +[%hardbreaks] +__Host__ : serverRoot +__BasePath__ : /nbi/api/v1 +__Schemes__ : HTTPS + + +=== Tags + +* ServiceOrder : A Service Order is a type of order which can be used to describe a group of operations on service – one service order item per service. An action at the level of the service order item describe the operation to be done on a service (add, terminate for example). The service order is triggered from the BSS system in charge of the product order management to ONAP that will manage the service fulfillment. + + +=== Consumes + +* `application/json;charset=utf-8` + + +=== Produces + +* `application/json;charset=utf-8` + + +[[_paths]] +== Resources + +[[_serviceorder_resource]] +=== ServiceOrder +A Service Order is a type of order which can be used to describe a group of operations on service – one service order item per service. An action at the level of the service order item describe the operation to be done on a service (add, terminate for example). The service order is triggered from the BSS system in charge of the product order management to ONAP that will manage the service fulfillment. + + +[[_serviceordercreate]] +==== Create a service order +.... +POST /serviceOrder +.... + + +===== 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. + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + +* 100: OrderItem with 'add' action but serviceSpecification id missing + +* 101: OrderItem with 'change'/'noChange'/'remove' but service id missing + +* 102: OrderItem with 'add' action - serviceSpecification id provided but not existing + +* 103: OrderItem with 'add' action but service id already existing in the inventory + +* 104: A customer for existing service(s) is provided but he did not exist + +* 105: OrderItem with 'change'/'noChange'/'remove' - Service id provided but it is not existing in the inventory + +* 106: [Not managed for current Relese] Issue with lcpCloudRegionId and tenantId provided + + +===== Parameters + +[options="header", cols=".^2,.^3,.^4"] +|=== +|Type|Name|Schema +|**Body**|**serviceOrder** + +__required__|<<_createserviceorder,CreateServiceOrder>> +|=== + + +===== Responses + +[options="header", cols=".^2,.^14,.^4"] +|=== +|HTTP Code|Description|Schema +|**201**|Success|<<_createserviceorder,CreateServiceOrder>> +|**400**|Bad Request + +List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>> +|**401**|Unauthorized + +List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>> +|**403**|Forbidden + +List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>> +|**404**|Not Found + +List of supported error codes: +- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>> +|**422**|Unprocessable entity + +Functional error + +Specific encapsulated business errors for current operation + +* 100: OrderItem with 'add' action but serviceSpecification id missing + +* 101: OrderItem with 'change'/'noChange'/'remove' but service id missing + +* 102: OrderItem with 'add' action - serviceSpecification id provided but not existing + +* 103: OrderItem with 'add' action but service id already existing in the inventory + +* 104: A customer for existing service(s) is provided but he did not exist + +* 105: OrderItem with 'change'/'noChange'/'remove' - Service id provided but it is not existing in the inventory + +* 106: [Not managed for current Relese] Issue with lcpCloudRegionId and tenantId provided|<<_errorrepresentation,ErrorRepresentation>> +|**500**|Internal Server Error + +List of supported error codes: +- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>> +|**503**|Service Unavailable + +List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>> +|=== + + +[[_serviceorderfind]] +==== List service orders +.... +GET /serviceOrder +.... + + +===== 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. + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + +===== Parameters + +[options="header", cols=".^2,.^3,.^9,.^4"] +|=== +|Type|Name|Description|Schema +|**Query**|**description** + +__optional__||string +|**Query**|**externalId** + +__optional__||string +|**Query**|**fields** + +__optional__|this attribute could be used to filter retrieved attribute(s) and/or sort SO.|string +|**Query**|**limit** + +__optional__|The maximum number of elements to retrieve (it can be greater than the actual available number of items).|integer (int32) +|**Query**|**offset** + +__optional__|The index of the first element to retrieve. Zero is the first element of the collection.|integer (int32) +|**Query**|**orderDate.gt** + +__optional__|order date greather than|string +|**Query**|**orderDate.lt** + +__optional__|order date lower than|string +|**Query**|**state** + +__optional__|state of the order(s) to be retrieved|string +|=== + + +===== Responses + +[options="header", cols=".^2,.^14,.^4"] +|=== +|HTTP Code|Description|Schema +|**200**|Success + +**Headers** : + +`X-Total-Count` (integer (int32)) + +`X-Result-Count` (integer (int32))|< <<_serviceorder,ServiceOrder>> > array +|**400**|Bad Request + +List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>> +|**401**|Unauthorized + +List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>> +|**403**|Forbidden + +List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>> +|**404**|Not Found + +List of supported error codes: +- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>> +|**422**|Unprocessable entity + +Functional error|<<_errorrepresentation,ErrorRepresentation>> +|**500**|Internal Server Error + +List of supported error codes: +- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>> +|**503**|Service Unavailable + +List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>> +|=== + + +[[_serviceorderget]] +==== Retrieve a service order +.... +GET /serviceOrder/{id} +.... + + +===== Description +This operation retrieves a service order entity. +Attribute selection is enabled for all first level attributes. + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + +===== Parameters + +[options="header", cols=".^2,.^3,.^9,.^4"] +|=== +|Type|Name|Description|Schema +|**Path**|**id** + +__required__||string +|**Query**|**fields** + +__optional__|Attribute selection|string +|=== + + +===== Responses + +[options="header", cols=".^2,.^14,.^4"] +|=== +|HTTP Code|Description|Schema +|**200**|Success|<<_serviceorder,ServiceOrder>> +|**400**|Bad Request + +List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value|<<_errorrepresentation,ErrorRepresentation>> +|**401**|Unauthorized + +List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials|<<_errorrepresentation,ErrorRepresentation>> +|**403**|Forbidden + +List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests|<<_errorrepresentation,ErrorRepresentation>> +|**404**|Not Found + +List of supported error codes: +- 60: Resource not found|<<_errorrepresentation,ErrorRepresentation>> +|**422**|Unprocessable entity + +Functional error|<<_errorrepresentation,ErrorRepresentation>> +|**500**|Internal Server Error + +List of supported error codes: +- 1: Internal error|<<_errorrepresentation,ErrorRepresentation>> +|**503**|Service Unavailable + +List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !|<<_errorrepresentation,ErrorRepresentation>> +|=== + + +[[_definitions]] +== Definitions + +[[_actiontype]] +=== ActionType +Action type to be describer on the order item. +modify is not managed in Beijing release + +__Type__ : enum (add, modify, delete, noChange) + + +[[_createserviceorder]] +=== CreateServiceOrder +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. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@baseType** + +__optional__||string +|**@schemaLocation** + +__optional__||string +|**@type** + +__optional__||string +|**category** + +__optional__|Used to categorize the order that can be useful for the OM system (e.g. “broadband”, “TVOption”, …)|string +|**description** + +__optional__|A free-text description of the service order|string +|**externalId** + +__optional__|ID given by the consumer and only understandable by him (to facilitate his searches)|string +|**orderItem** + +__optional__||< <<_createserviceorderitem,CreateServiceOrderItem>> > array +|**orderRelationship** + +__optional__||< <<_orderrelationship,OrderRelationship>> > array +|**priority** + +__optional__|A way that can be used by consumers to prioritize orders in Service Order Management system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)|string +|**relatedParty** + +__optional__||< <<_relatedparty,RelatedParty>> > array +|**requestedCompletionDate** + +__optional__|Requested delivery date from the requestor perspective|string (date-time) +|**requestedStartDate** + +__optional__|Order start date wished by the requestor|string (date-time) +|=== + + +[[_createserviceorderitem]] +=== CreateServiceOrderItem +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. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@baseType** + +__optional__|Indicates the base type of the resource.|string +|**@schemaLocation** + +__optional__|A link to the schema describing this REST resource|string +|**@type** + +__optional__|Indicates the type of resource.|string +|**action** + +__optional__||<<_actiontype,ActionType>> +|**id** + +__required__|Identifier of the line item (generally it is a sequence number 01, 02, 03, …)|string +|**orderItemRelationship** + +__optional__||< <<_orderitemrelationship,OrderItemRelationship>> > array +|**service** + +__required__||<<_service,Service>> +|=== + + +[[_errorrepresentation]] +=== ErrorRepresentation +Representation of an error. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@schemaLocation** + +__optional__|it provides a link to the schema describing a REST resource|string +|**@type** + +__optional__|The class type of a REST resource|string +|**code** + +__required__|Application related code (as defined in the API or from a common list)|integer (int32) +|**message** + +__optional__|Text that provide more details and corrective actions related to the error. This can be shown to a client user|string +|**reason** + +__required__|Text that explains the reason for error. This can be shown to a client user.|string +|**referenceError** + +__optional__|url pointing to documentation describing the error|string +|**status** + +__optional__|http error code extension like 400-2|string +|=== + + +[[_hub]] +=== Hub +An HUB resource is used by client side to subscribe to notification. +Not managed in the Beijing release. + + +[options="header", cols=".^3,.^4"] +|=== +|Name|Schema +|**callback** + +__required__|string +|**id** + +__optional__|string +|**query** + +__optional__|string +|=== + + +[[_orderitemrelationship]] +=== OrderItemRelationship +Linked order item to the one containing this attribute. +nbi component used this relationship to sort request to ONAP. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**id** + +__required__|Unique identifier of an order item|string +|**type** + +__required__||<<_relationshiptype,RelationshipType>> +|=== + + +[[_orderrelationship]] +=== OrderRelationship +Linked order to the one containing this attribute. +This relationship is not used to sort ONAP request. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@referredType** + +__optional__|Type of the referred order.|string +|**href** + +__optional__|A hyperlink to the related order|string +|**id** + +__required__|The id of the related order|string +|**type** + +__optional__|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)|string +|=== + + +[[_relatedparty]] +=== RelatedParty +A related party defines party which are involved in this order and the role they are playing. +for Beijing release: +With the current version of APIs used from SO and AAI we need to manage a ‘customer’. This customer concept is confusing with Customer BSS concept. We took the following rules to manage the ‘customer’ information: +o It could be provided through a serviceOrder in the service Order a relatedParty with role ‘ONAPcustomer’ should be provided in the serviceOrder header (we will not consider in this release the party at item level); External API component will check if this customer exists and create it in AAI if not. +o If no relatedParty are provided the service will be affected to ‘generic’ customer (dummy customer) – we assume this ‘generic’ customer always exists. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@referredType** + +__optional__||string +|**href** + +__optional__|An hyperlink to the party - not used in Beijnig release|string +|**id** + +__required__|Unique identifier of a related party|string +|**name** + +__optional__|Name of the related party|string +|**role** + +__required__|The role of the related party (e.g. Owner, requester, fullfiller etc). +ONLY 'ONAPcustomer' is considered|string +|=== + + +[[_relationshiptype]] +=== RelationshipType +Relationship type; +Only reliesOn is managed in Beijing release. + +__Type__ : enum (reliesOn) + + +[[_service]] +=== Service +Service (to be added, modified, deleted) description + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@schemaLocation** + +__optional__|The URL to get the resource schema. +Not managed in Beijing Release|string +|**@type** + +__optional__|To define the service type +Not managed in Beijing Release|string +|**href** + +__optional__|Reference to the Service (useful for delete or modify command). +Not managed in Beijing release.|string +|**id** + +__required__|Identifier of a service instance. +It must be valued if orderItem action is 'delete' and corresponds to a AAI service.id|string +|**name** + +__optional__|Name of the service - When orderItem action is 'add' this name will be used in ONAP/SO request as InstaceName.|string +|**relatedParty** + +__optional__||< <<_relatedparty,RelatedParty>> > array +|**serviceCharacteristic** + +__optional__||< <<_servicecharacteristic,ServiceCharacteristic>> > array +|**serviceRelationship** + +__optional__||< <<_servicerelationship,ServiceRelationship>> > array +|**serviceSpecification** + +__optional__||<<_servicespecificationref,ServiceSpecificationRef>> +|**serviceState** + +__optional__|The lifecycle state of the service requested; +Not managed in Beijing release.|string +|=== + + +[[_servicecharacteristic]] +=== ServiceCharacteristic +ServiceCharacteristic + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**name** + +__required__|Name of characteristic|string +|**value** + +__optional__||<<_value,Value>> +|**valueType** + +__optional__||string +|=== + + +[[_serviceorder]] +=== ServiceOrder +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 + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@baseType** + +__optional__||string +|**@schemaLocation** + +__optional__||string +|**@type** + +__optional__||string +|**category** + +__optional__|Used to categorize the order that can be useful for the OM system (e.g. “broadband”, “TVOption”, …)|string +|**completionDateTime** + +__optional__|Date when the order was completed|string (date-time) +|**description** + +__optional__|A free-text description of the service order|string +|**expectedCompletionDate** + +__optional__||string (date-time) +|**externalId** + +__optional__|ID given by the consumer and only understandable by him (to facilitate his searches)|string +|**href** + +__optional__|Hyperlink to access the order|string +|**id** + +__required__|ID created on repository side|string +|**orderDate** + +__optional__||string (date-time) +|**orderItem** + +__optional__||< <<_serviceorderitem,ServiceOrderItem>> > array +|**orderRelationship** + +__optional__||< <<_orderrelationship,OrderRelationship>> > array +|**priority** + +__optional__|A way that can be used by consumers to prioritize orders in Service Order Management system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)|string +|**relatedParty** + +__optional__||< <<_relatedparty,RelatedParty>> > array +|**requestedCompletionDate** + +__optional__|Requested delivery date from the requestor perspective|string (date-time) +|**requestedStartDate** + +__optional__|Order start date wished by the requestor|string (date-time) +|**startDate** + +__optional__|Date when the order was started for processing|string (date-time) +|**state** + +__optional__||<<_statetype,StateType>> +|=== + + +[[_serviceorderitem]] +=== ServiceOrderItem +An identified part of the order. A service order is decomposed into one or more order items. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@baseType** + +__optional__|not used in Beijing relase|string +|**@schemaLocation** + +__optional__|not used in Beijing relase|string +|**@type** + +__optional__|Used to extend the order item. +not used in Beijing relase|string +|**action** + +__optional__||<<_actiontype,ActionType>> +|**id** + +__required__|Identifier of the line item (generally it is a sequence number 01, 02, 03, …)|string +|**orderItemRelationship** + +__optional__||< <<_orderitemrelationship,OrderItemRelationship>> > array +|**service** + +__required__||<<_service,Service>> +|**state** + +__optional__||<<_statetype,StateType>> +|=== + + +[[_serviceref]] +=== ServiceRef +Service references + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**href** + +__optional__|Reference of the service|string +|**id** + +__required__|Unique identifier of the service|string +|=== + + +[[_servicerelationship]] +=== ServiceRelationship +Linked Services to the one instantiate +nbi component used this relationship to sort request to ONAP. + + +[options="header", cols=".^3,.^4"] +|=== +|Name|Schema +|**service** + +__required__|<<_service,Service>> +|**type** + +__required__|<<_relationshiptype,RelationshipType>> +|=== + + +[[_servicespecificationref]] +=== ServiceSpecificationRef +The service specification (these attributes are fetched from the catalogue). + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@baseType** + +__optional__|Not used in Beijing release|string +|**@schemaLocation** + +__optional__|Not used in Beijing release|string +|**@type** + +__optional__|Not used in Beijing release|string +|**href** + +__optional__|Reference of the service specification +Not used in Beijing release.|string +|**id** + +__required__|Unique identifier of the service specification +This information will be used to retrieve SDC information + mapped to SO ModelNameVersionIdin the request.|string +|**name** + +__optional__|Name of the service specification +Not used in Beijing release|string +|**targetServiceSchema** + +__optional__||<<_targetserviceschema,TargetServiceSchema>> +|**version** + +__optional__|Version of the service Specification +Not used in Beijing release|string +|=== + + +[[_statetype]] +=== StateType +List of possible state for the order and the orderItem. + +__Type__ : enum (acknowledged, rejected, pending, held, inProgress, cancelled, completed, failed, partial) + + +[[_targetserviceschema]] +=== TargetServiceSchema +Target to the schema describing the service spec resource + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@schemaLocation** + +__required__|This field provided a link to the schema describing this REST resource.|string +|**@type** + +__required__|Indicates the (class) type of resource.|string +|=== + + +[[_value]] +=== Value +Value is a descriptive structure for service characteristic; +For Beijing we only manage 'basic' attribute - the serviceCharacteristicValue must be used. + + +[options="header", cols=".^3,.^11,.^4"] +|=== +|Name|Description|Schema +|**@schemaLocation** + +__optional__|This field provided a link to the schema describing this REST resource. +Not used in Beijing Release|string +|**@type** + +__optional__|Indicates the (class) type of resource. +Not used in Beijing Release|string +|**serviceCharacteristicValue** + +__optional__|Value of the characteristic. +This attribute must be used in Beijing Release to provide characteristic value.|string +|=== + diff --git a/docs/offeredapis/serviceOrder/documentation.html b/docs/offeredapis/serviceOrder/documentation.html new file mode 100644 index 0000000..0983ed9 --- /dev/null +++ b/docs/offeredapis/serviceOrder/documentation.html @@ -0,0 +1,2030 @@ + + + + + + + +API ServiceOrder + + + + + +
+
+

Overview

+
+
+
+

serviceOrder API designed for ONAP Beijing Release. +This API is build from TMF open API18.0 (applying TMF Guideline 3.0); +Only operations GET (by id and list) and POST are available.

+
+
+
+

Version information

+
+

Version : 1.0.0_inProgress

+
+
+
+

URI scheme

+
+

Host : serverRoot
+BasePath : /nbi/api/v1
+Schemes : HTTPS

+
+
+
+

Tags

+
+
    +
  • +

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

    +
  • +
+
+
+
+

Consumes

+
+
    +
  • +

    application/json;charset=utf-8

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json;charset=utf-8

    +
  • +
+
+
+
+
+
+

Resources

+
+
+

ServiceOrder

+
+

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

+
+
+

Create a service order

+
+
+
POST /serviceOrder
+
+
+
+
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.

+
+
+

Specific business errors for current operation will be encapsulated in

+
+
+

HTTP Response 422 Unprocessable entity

+
+
+
    +
  • +

    100: OrderItem with 'add' action but serviceSpecification id missing

    +
  • +
  • +

    101: OrderItem with 'change'/'noChange'/'remove' but service id missing

    +
  • +
  • +

    102: OrderItem with 'add' action - serviceSpecification id provided but not existing

    +
  • +
  • +

    103: OrderItem with 'add' action but service id already existing in the inventory

    +
  • +
  • +

    104: A customer for existing service(s) is provided but he did not exist

    +
  • +
  • +

    105: OrderItem with 'change'/'noChange'/'remove' - Service id provided but it is not existing in the inventory

    +
  • +
  • +

    106: [Not managed for current Relese] Issue with lcpCloudRegionId and tenantId provided

    +
  • +
+
+
+
+
Parameters
+ +++++ + + + + + + + + + + + + + + +
TypeNameSchema

Body

serviceOrder
+required

CreateServiceOrder

+
+
+
Responses
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

201

Success

CreateServiceOrder

400

Bad Request

+

List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value

ErrorRepresentation

401

Unauthorized

+

List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials

ErrorRepresentation

403

Forbidden

+

List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests

ErrorRepresentation

404

Not Found

+

List of supported error codes: +- 60: Resource not found

ErrorRepresentation

422

Unprocessable entity

+

Functional error

+

Specific encapsulated business errors for current operation

+

* 100: OrderItem with 'add' action but serviceSpecification id missing

+

* 101: OrderItem with 'change'/'noChange'/'remove' but service id missing

+

* 102: OrderItem with 'add' action - serviceSpecification id provided but not existing

+

* 103: OrderItem with 'add' action but service id already existing in the inventory

+

* 104: A customer for existing service(s) is provided but he did not exist

+

* 105: OrderItem with 'change'/'noChange'/'remove' - Service id provided but it is not existing in the inventory

+

* 106: [Not managed for current Relese] Issue with lcpCloudRegionId and tenantId provided

ErrorRepresentation

500

Internal Server Error

+

List of supported error codes: +- 1: Internal error

ErrorRepresentation

503

Service Unavailable

+

List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !

ErrorRepresentation

+
+
+
+

List service orders

+
+
+
GET /serviceOrder
+
+
+
+
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.

+
+
+

Specific business errors for current operation will be encapsulated in

+
+
+

HTTP Response 422 Unprocessable entity

+
+
+
+
Parameters
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionSchema

Query

description
+optional

string

Query

externalId
+optional

string

Query

fields
+optional

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

string

Query

limit
+optional

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

integer (int32)

Query

offset
+optional

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

integer (int32)

Query

orderDate.gt
+optional

order date greather than

string

Query

orderDate.lt
+optional

order date lower than

string

Query

state
+optional

state of the order(s) to be retrieved

string

+
+
+
Responses
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

Success
+Headers :
+X-Total-Count (integer (int32))
+X-Result-Count (integer (int32))

< ServiceOrder > array

400

Bad Request

+

List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value

ErrorRepresentation

401

Unauthorized

+

List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials

ErrorRepresentation

403

Forbidden

+

List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests

ErrorRepresentation

404

Not Found

+

List of supported error codes: +- 60: Resource not found

ErrorRepresentation

422

Unprocessable entity

+

Functional error

ErrorRepresentation

500

Internal Server Error

+

List of supported error codes: +- 1: Internal error

ErrorRepresentation

503

Service Unavailable

+

List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !

ErrorRepresentation

+
+
+
+

Retrieve a service order

+
+
+
GET /serviceOrder/{id}
+
+
+
+
Description
+
+

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

+
+
+

Specific business errors for current operation will be encapsulated in

+
+
+

HTTP Response 422 Unprocessable entity

+
+
+
+
Parameters
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionSchema

Path

id
+required

string

Query

fields
+optional

Attribute selection

string

+
+
+
Responses
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

Success

ServiceOrder

400

Bad Request

+

List of supported error codes: +- 20: Invalid URL parameter value +- 21: Missing body +- 22: Invalid body +- 23: Missing body field +- 24: Invalid body field +- 25: Missing header +- 26: Invalid header value +- 27: Missing query-string parameter +- 28: Invalid query-string parameter value

ErrorRepresentation

401

Unauthorized

+

List of supported error codes: +- 40: Missing credentials +- 41: Invalid credentials +- 42: Expired credentials

ErrorRepresentation

403

Forbidden

+

List of supported error codes: +- 50: Access denied +- 51: Forbidden requester +- 52: Forbidden user +- 53: Too many requests

ErrorRepresentation

404

Not Found

+

List of supported error codes: +- 60: Resource not found

ErrorRepresentation

422

Unprocessable entity

+

Functional error

ErrorRepresentation

500

Internal Server Error

+

List of supported error codes: +- 1: Internal error

ErrorRepresentation

503

Service Unavailable

+

List of supported error codes: +- 5: The service is temporarily unavailable +- 6: Orange API is over capacity, retry later !

ErrorRepresentation

+
+
+
+
+
+
+

Definitions

+
+
+

ActionType

+
+

Action type to be describer on the order item. +modify is not managed in Beijing release

+
+
+

Type : enum (add, modify, delete, noChange)

+
+
+
+

CreateServiceOrder

+
+

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.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@baseType
+optional

string

@schemaLocation
+optional

string

@type
+optional

string

category
+optional

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

string

description
+optional

A free-text description of the service order

string

externalId
+optional

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

string

orderItem
+optional

< CreateServiceOrderItem > array

orderRelationship
+optional

< OrderRelationship > array

priority
+optional

A way that can be used by consumers to prioritize orders in Service Order Management system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)

string

relatedParty
+optional

< RelatedParty > array

requestedCompletionDate
+optional

Requested delivery date from the requestor perspective

string (date-time)

requestedStartDate
+optional

Order start date wished by the requestor

string (date-time)

+
+
+

CreateServiceOrderItem

+
+

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.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@baseType
+optional

Indicates the base type of the resource.

string

@schemaLocation
+optional

A link to the schema describing this REST resource

string

@type
+optional

Indicates the type of resource.

string

action
+optional

ActionType

id
+required

Identifier of the line item (generally it is a sequence number 01, 02, 03, …)

string

orderItemRelationship
+optional

< OrderItemRelationship > array

service
+required

Service

+
+
+

ErrorRepresentation

+
+

Representation of an error.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@schemaLocation
+optional

it provides a link to the schema describing a REST resource

string

@type
+optional

The class type of a REST resource

string

code
+required

Application related code (as defined in the API or from a common list)

integer (int32)

message
+optional

Text that provide more details and corrective actions related to the error. This can be shown to a client user

string

reason
+required

Text that explains the reason for error. This can be shown to a client user.

string

referenceError
+optional

url pointing to documentation describing the error

string

status
+optional

http error code extension like 400-2

string

+
+
+

Hub

+
+

An HUB resource is used by client side to subscribe to notification. +Not managed in the Beijing release.

+
+ ++++ + + + + + + + + + + + + + + + + + + + + +
NameSchema

callback
+required

string

id
+optional

string

query
+optional

string

+
+
+

OrderItemRelationship

+
+

Linked order item to the one containing this attribute. +nbi component used this relationship to sort request to ONAP.

+
+ +++++ + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

id
+required

Unique identifier of an order item

string

type
+required

RelationshipType

+
+
+

OrderRelationship

+
+

Linked order to the one containing this attribute. +This relationship is not used to sort ONAP request.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@referredType
+optional

Type of the referred order.

string

href
+optional

A hyperlink to the related order

string

id
+required

The id of the related order

string

type
+optional

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)

string

+
+
+

RelatedParty

+
+

A related party defines party which are involved in this order and the role they are playing. +for Beijing release: +With the current version of APIs used from SO and AAI we need to manage a ‘customer’. This customer concept is confusing with Customer BSS concept. We took the following rules to manage the ‘customer’ information: +o It could be provided through a serviceOrder in the service Order a relatedParty with role ‘ONAPcustomer’ should be provided in the serviceOrder header (we will not consider in this release the party at item level); External API component will check if this customer exists and create it in AAI if not. +o If no relatedParty are provided the service will be affected to ‘generic’ customer (dummy customer) – we assume this ‘generic’ customer always exists.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@referredType
+optional

string

href
+optional

An hyperlink to the party - not used in Beijnig release

string

id
+required

Unique identifier of a related party

string

name
+optional

Name of the related party

string

role
+required

The role of the related party (e.g. Owner, requester, fullfiller etc). +ONLY 'ONAPcustomer' is considered

string

+
+
+

RelationshipType

+
+

Relationship type; +Only reliesOn is managed in Beijing release.

+
+
+

Type : enum (reliesOn)

+
+
+
+

Service

+
+

Service (to be added, modified, deleted) description

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@schemaLocation
+optional

The URL to get the resource schema. +Not managed in Beijing Release

string

@type
+optional

To define the service type +Not managed in Beijing Release

string

href
+optional

Reference to the Service (useful for delete or modify command). +Not managed in Beijing release.

string

id
+required

Identifier of a service instance. +It must be valued if orderItem action is 'delete' and corresponds to a AAI service.id

string

name
+optional

Name of the service - When orderItem action is 'add' this name will be used in ONAP/SO request as InstaceName.

string

relatedParty
+optional

< RelatedParty > array

serviceCharacteristic
+optional

< ServiceCharacteristic > array

serviceRelationship
+optional

< ServiceRelationship > array

serviceSpecification
+optional

ServiceSpecificationRef

serviceState
+optional

The lifecycle state of the service requested; +Not managed in Beijing release.

string

+
+
+

ServiceCharacteristic

+
+

ServiceCharacteristic

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

name
+required

Name of characteristic

string

value
+optional

Value

valueType
+optional

string

+
+
+

ServiceOrder

+
+

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

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@baseType
+optional

string

@schemaLocation
+optional

string

@type
+optional

string

category
+optional

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

string

completionDateTime
+optional

Date when the order was completed

string (date-time)

description
+optional

A free-text description of the service order

string

expectedCompletionDate
+optional

string (date-time)

externalId
+optional

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

string

href
+optional

Hyperlink to access the order

string

id
+required

ID created on repository side

string

orderDate
+optional

string (date-time)

orderItem
+optional

< ServiceOrderItem > array

orderRelationship
+optional

< OrderRelationship > array

priority
+optional

A way that can be used by consumers to prioritize orders in Service Order Management system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)

string

relatedParty
+optional

< RelatedParty > array

requestedCompletionDate
+optional

Requested delivery date from the requestor perspective

string (date-time)

requestedStartDate
+optional

Order start date wished by the requestor

string (date-time)

startDate
+optional

Date when the order was started for processing

string (date-time)

state
+optional

StateType

+
+
+

ServiceOrderItem

+
+

An identified part of the order. A service order is decomposed into one or more order items.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@baseType
+optional

not used in Beijing relase

string

@schemaLocation
+optional

not used in Beijing relase

string

@type
+optional

Used to extend the order item. +not used in Beijing relase

string

action
+optional

ActionType

id
+required

Identifier of the line item (generally it is a sequence number 01, 02, 03, …)

string

orderItemRelationship
+optional

< OrderItemRelationship > array

service
+required

Service

state
+optional

StateType

+
+
+

ServiceRef

+
+

Service references

+
+ +++++ + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

href
+optional

Reference of the service

string

id
+required

Unique identifier of the service

string

+
+
+

ServiceRelationship

+
+

Linked Services to the one instantiate +nbi component used this relationship to sort request to ONAP.

+
+ ++++ + + + + + + + + + + + + + + + + +
NameSchema

service
+required

Service

type
+required

RelationshipType

+
+
+

ServiceSpecificationRef

+
+

The service specification (these attributes are fetched from the catalogue).

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@baseType
+optional

Not used in Beijing release

string

@schemaLocation
+optional

Not used in Beijing release

string

@type
+optional

Not used in Beijing release

string

href
+optional

Reference of the service specification +Not used in Beijing release.

string

id
+required

Unique identifier of the service specification +This information will be used to retrieve SDC information + mapped to SO ModelNameVersionIdin the request.

string

name
+optional

Name of the service specification +Not used in Beijing release

string

targetServiceSchema
+optional

TargetServiceSchema

version
+optional

Version of the service Specification +Not used in Beijing release

string

+
+
+

StateType

+
+

List of possible state for the order and the orderItem.

+
+
+

Type : enum (acknowledged, rejected, pending, held, inProgress, cancelled, completed, failed, partial)

+
+
+
+

TargetServiceSchema

+
+

Target to the schema describing the service spec resource

+
+ +++++ + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@schemaLocation
+required

This field provided a link to the schema describing this REST resource.

string

@type
+required

Indicates the (class) type of resource.

string

+
+
+

Value

+
+

Value is a descriptive structure for service characteristic; +For Beijing we only manage 'basic' attribute - the serviceCharacteristicValue must be used.

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionSchema

@schemaLocation
+optional

This field provided a link to the schema describing this REST resource. +Not used in Beijing Release

string

@type
+optional

Indicates the (class) type of resource. +Not used in Beijing Release

string

serviceCharacteristicValue
+optional

Value of the characteristic. +This attribute must be used in Beijing Release to provide characteristic value.

string

+
+
+
+
+ + + \ No newline at end of file diff --git a/docs/offeredapis/serviceOrder/markDown.md b/docs/offeredapis/serviceOrder/markDown.md new file mode 100644 index 0000000..5ee40cf --- /dev/null +++ b/docs/offeredapis/serviceOrder/markDown.md @@ -0,0 +1,463 @@ +# API ServiceOrder + + + +## Overview + +### Api URL + +[Swagger UI](https://api-designer.sso.infra.ftgroup/swagger-ui/?url=https://api-designer.sso.infra.ftgroup/api/1.0/apis/kl1kgvz1zR/swagger.json) + + +[plant UML UI](https://plantuml.rd.francetelecom.fr/proxy?fmt=svg&src=https://api-designer.sso.infra.ftgroup/api/1.0/apis/kl1kgvz1zR/plantuml&noCache=934804.0) + +serviceOrder API designed for ONAP Beijing Release. +This API is build from TMF open API18.0 (applying TMF Guideline 3.0); +Only operations GET (by id and list) and POST are available. + + +### Version information +*Version* : 1.0.0_inProgress + + +### URI scheme +*Host* : serverRoot +*BasePath* : /nbi/api/v1 +*Schemes* : HTTPS + + +### Tags + +* ServiceOrder : A Service Order is a type of order which can be used to describe a group of operations on service – one service order item per service. An action at the level of the service order item describe the operation to be done on a service (add, terminate for example). The service order is triggered from the BSS system in charge of the product order management to ONAP that will manage the service fulfillment. + + +### Consumes + +* `application/json;charset=utf-8` + + +### Produces + +* `application/json;charset=utf-8` + + + +## Resources + + +### ServiceOrder +A Service Order is a type of order which can be used to describe a group of operations on service – one service order item per service. An action at the level of the service order item describe the operation to be done on a service (add, terminate for example). The service order is triggered from the BSS system in charge of the product order management to ONAP that will manage the service fulfillment. + + + +#### Create a service order +``` +POST /serviceOrder +``` + + +##### 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. + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + - 100: OrderItem with 'add' action but serviceSpecification id missing + + - 101: OrderItem with 'change'/'noChange'/'remove' but service id missing + + - 102: OrderItem with 'add' action - serviceSpecification id provided but not existing + + - 103: OrderItem with 'add' action but service id already existing in the inventory + + - 104: A customer for existing service(s) is provided but he did not exist + + - 105: OrderItem with 'change'/'noChange'/'remove' - Service id provided but it is not existing in the inventory + + - 106: [Not managed for current Relese] Issue with lcpCloudRegionId and tenantId provided + + +##### Parameters + +|Type|Name|Schema| +|---|---|---| +|**Body**|**serviceOrder**
*required*|[CreateServiceOrder](#createserviceorder)| + + +##### Responses + +|HTTP Code|Description|Schema| +|---|---|---| +|**201**|Success|[CreateServiceOrder](#createserviceorder)| +|**400**|Bad Request

List of supported error codes:
- 20: Invalid URL parameter value
- 21: Missing body
- 22: Invalid body
- 23: Missing body field
- 24: Invalid body field
- 25: Missing header
- 26: Invalid header value
- 27: Missing query-string parameter
- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)| +|**401**|Unauthorized

List of supported error codes:
- 40: Missing credentials
- 41: Invalid credentials
- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)| +|**403**|Forbidden

List of supported error codes:
- 50: Access denied
- 51: Forbidden requester
- 52: Forbidden user
- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)| +|**404**|Not Found

List of supported error codes:
- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)| +|**422**|Unprocessable entity

Functional error

Specific encapsulated business errors for current operation

- 100: OrderItem with 'add' action but serviceSpecification id missing

- 101: OrderItem with 'change'/'noChange'/'remove' but service id missing

- 102: OrderItem with 'add' action - serviceSpecification id provided but not existing

- 103: OrderItem with 'add' action but service id already existing in the inventory

- 104: A customer for existing service(s) is provided but he did not exist

- 105: OrderItem with 'change'/'noChange'/'remove' - Service id provided but it is not existing in the inventory

- 106: [Not managed for current Relese] Issue with lcpCloudRegionId and tenantId provided|[ErrorRepresentation](#errorrepresentation)| +|**500**|Internal Server Error

List of supported error codes:
- 1: Internal error|[ErrorRepresentation](#errorrepresentation)| +|**503**|Service Unavailable

List of supported error codes:
- 5: The service is temporarily unavailable
- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)| + + + +#### List service orders +``` +GET /serviceOrder +``` + + +##### 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. + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + +##### Parameters + +|Type|Name|Description|Schema| +|---|---|---|---| +|**Query**|**description**
*optional*||string| +|**Query**|**externalId**
*optional*||string| +|**Query**|**fields**
*optional*|this attribute could be used to filter retrieved attribute(s) and/or sort SO.|string| +|**Query**|**limit**
*optional*|The maximum number of elements to retrieve (it can be greater than the actual available number of items).|integer (int32)| +|**Query**|**offset**
*optional*|The index of the first element to retrieve. Zero is the first element of the collection.|integer (int32)| +|**Query**|**orderDate.gt**
*optional*|order date greather than|string| +|**Query**|**orderDate.lt**
*optional*|order date lower than|string| +|**Query**|**state**
*optional*|state of the order(s) to be retrieved|string| + + +##### Responses + +|HTTP Code|Description|Schema| +|---|---|---| +|**200**|Success
**Headers** :
`X-Total-Count` (integer (int32))
`X-Result-Count` (integer (int32))|< [ServiceOrder](#serviceorder) > array| +|**400**|Bad Request

List of supported error codes:
- 20: Invalid URL parameter value
- 21: Missing body
- 22: Invalid body
- 23: Missing body field
- 24: Invalid body field
- 25: Missing header
- 26: Invalid header value
- 27: Missing query-string parameter
- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)| +|**401**|Unauthorized

List of supported error codes:
- 40: Missing credentials
- 41: Invalid credentials
- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)| +|**403**|Forbidden

List of supported error codes:
- 50: Access denied
- 51: Forbidden requester
- 52: Forbidden user
- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)| +|**404**|Not Found

List of supported error codes:
- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)| +|**422**|Unprocessable entity

Functional error|[ErrorRepresentation](#errorrepresentation)| +|**500**|Internal Server Error

List of supported error codes:
- 1: Internal error|[ErrorRepresentation](#errorrepresentation)| +|**503**|Service Unavailable

List of supported error codes:
- 5: The service is temporarily unavailable
- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)| + + + +#### Retrieve a service order +``` +GET /serviceOrder/{id} +``` + + +##### Description +This operation retrieves a service order entity. +Attribute selection is enabled for all first level attributes. + +Specific business errors for current operation will be encapsulated in + +HTTP Response 422 Unprocessable entity + + +##### Parameters + +|Type|Name|Description|Schema| +|---|---|---|---| +|**Path**|**id**
*required*||string| +|**Query**|**fields**
*optional*|Attribute selection|string| + + +##### Responses + +|HTTP Code|Description|Schema| +|---|---|---| +|**200**|Success|[ServiceOrder](#serviceorder)| +|**400**|Bad Request

List of supported error codes:
- 20: Invalid URL parameter value
- 21: Missing body
- 22: Invalid body
- 23: Missing body field
- 24: Invalid body field
- 25: Missing header
- 26: Invalid header value
- 27: Missing query-string parameter
- 28: Invalid query-string parameter value|[ErrorRepresentation](#errorrepresentation)| +|**401**|Unauthorized

List of supported error codes:
- 40: Missing credentials
- 41: Invalid credentials
- 42: Expired credentials|[ErrorRepresentation](#errorrepresentation)| +|**403**|Forbidden

List of supported error codes:
- 50: Access denied
- 51: Forbidden requester
- 52: Forbidden user
- 53: Too many requests|[ErrorRepresentation](#errorrepresentation)| +|**404**|Not Found

List of supported error codes:
- 60: Resource not found|[ErrorRepresentation](#errorrepresentation)| +|**422**|Unprocessable entity

Functional error|[ErrorRepresentation](#errorrepresentation)| +|**500**|Internal Server Error

List of supported error codes:
- 1: Internal error|[ErrorRepresentation](#errorrepresentation)| +|**503**|Service Unavailable

List of supported error codes:
- 5: The service is temporarily unavailable
- 6: Orange API is over capacity, retry later !|[ErrorRepresentation](#errorrepresentation)| + + + +## Definitions + + +### ActionType +Action type to be describer on the order item. +modify is not managed in Beijing release + +*Type* : enum (add, modify, delete, noChange) + + + +### CreateServiceOrder +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. + + +|Name|Description|Schema| +|---|---|---| +|**@baseType**
*optional*||string| +|**@schemaLocation**
*optional*||string| +|**@type**
*optional*||string| +|**category**
*optional*|Used to categorize the order that can be useful for the OM system (e.g. “broadband”, “TVOption”, ...)|string| +|**description**
*optional*|A free-text description of the service order|string| +|**externalId**
*optional*|ID given by the consumer and only understandable by him (to facilitate his searches)|string| +|**orderItem**
*optional*||< [CreateServiceOrderItem](#createserviceorderitem) > array| +|**orderRelationship**
*optional*||< [OrderRelationship](#orderrelationship) > array| +|**priority**
*optional*|A way that can be used by consumers to prioritize orders in Service Order Management system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)|string| +|**relatedParty**
*optional*||< [RelatedParty](#relatedparty) > array| +|**requestedCompletionDate**
*optional*|Requested delivery date from the requestor perspective|string (date-time)| +|**requestedStartDate**
*optional*|Order start date wished by the requestor|string (date-time)| + + + +### CreateServiceOrderItem +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. + + +|Name|Description|Schema| +|---|---|---| +|**@baseType**
*optional*|Indicates the base type of the resource.|string| +|**@schemaLocation**
*optional*|A link to the schema describing this REST resource|string| +|**@type**
*optional*|Indicates the type of resource.|string| +|**action**
*optional*||[ActionType](#actiontype)| +|**id**
*required*|Identifier of the line item (generally it is a sequence number 01, 02, 03, …)|string| +|**orderItemRelationship**
*optional*||< [OrderItemRelationship](#orderitemrelationship) > array| +|**service**
*required*||[Service](#service)| + + + +### ErrorRepresentation +Representation of an error. + + +|Name|Description|Schema| +|---|---|---| +|**@schemaLocation**
*optional*|it provides a link to the schema describing a REST resource|string| +|**@type**
*optional*|The class type of a REST resource|string| +|**code**
*required*|Application related code (as defined in the API or from a common list)|integer (int32)| +|**message**
*optional*|Text that provide more details and corrective actions related to the error. This can be shown to a client user|string| +|**reason**
*required*|Text that explains the reason for error. This can be shown to a client user.|string| +|**referenceError**
*optional*|url pointing to documentation describing the error|string| +|**status**
*optional*|http error code extension like 400-2|string| + + + +### Hub +An HUB resource is used by client side to subscribe to notification. +Not managed in the Beijing release. + + +|Name|Schema| +|---|---| +|**callback**
*required*|string| +|**id**
*optional*|string| +|**query**
*optional*|string| + + + +### OrderItemRelationship +Linked order item to the one containing this attribute. +nbi component used this relationship to sort request to ONAP. + + +|Name|Description|Schema| +|---|---|---| +|**id**
*required*|Unique identifier of an order item|string| +|**type**
*required*||[RelationshipType](#relationshiptype)| + + + +### OrderRelationship +Linked order to the one containing this attribute. +This relationship is not used to sort ONAP request. + + +|Name|Description|Schema| +|---|---|---| +|**@referredType**
*optional*|Type of the referred order.|string| +|**href**
*optional*|A hyperlink to the related order|string| +|**id**
*required*|The id of the related order|string| +|**type**
*optional*|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)|string| + + + +### RelatedParty +A related party defines party which are involved in this order and the role they are playing. +for Beijing release: +With the current version of APIs used from SO and AAI we need to manage a ‘customer’. This customer concept is confusing with Customer BSS concept. We took the following rules to manage the ‘customer’ information: +o It could be provided through a serviceOrder in the service Order a relatedParty with role ‘ONAPcustomer’ should be provided in the serviceOrder header (we will not consider in this release the party at item level); External API component will check if this customer exists and create it in AAI if not. +o If no relatedParty are provided the service will be affected to ‘generic’ customer (dummy customer) – we assume this ‘generic’ customer always exists. + + +|Name|Description|Schema| +|---|---|---| +|**@referredType**
*optional*||string| +|**href**
*optional*|An hyperlink to the party - not used in Beijnig release|string| +|**id**
*required*|Unique identifier of a related party|string| +|**name**
*optional*|Name of the related party|string| +|**role**
*required*|The role of the related party (e.g. Owner, requester, fullfiller etc).
ONLY 'ONAPcustomer' is considered|string| + + + +### RelationshipType +Relationship type; +Only reliesOn is managed in Beijing release. + +*Type* : enum (reliesOn) + + + +### Service +Service (to be added, modified, deleted) description + + +|Name|Description|Schema| +|---|---|---| +|**@schemaLocation**
*optional*|The URL to get the resource schema.
Not managed in Beijing Release|string| +|**@type**
*optional*|To define the service type
Not managed in Beijing Release|string| +|**href**
*optional*|Reference to the Service (useful for delete or modify command).
Not managed in Beijing release.|string| +|**id**
*required*|Identifier of a service instance.
It must be valued if orderItem action is 'delete' and corresponds to a AAI service.id|string| +|**name**
*optional*|Name of the service - When orderItem action is 'add' this name will be used in ONAP/SO request as InstaceName.|string| +|**relatedParty**
*optional*||< [RelatedParty](#relatedparty) > array| +|**serviceCharacteristic**
*optional*||< [ServiceCharacteristic](#servicecharacteristic) > array| +|**serviceRelationship**
*optional*||< [ServiceRelationship](#servicerelationship) > array| +|**serviceSpecification**
*optional*||[ServiceSpecificationRef](#servicespecificationref)| +|**serviceState**
*optional*|The lifecycle state of the service requested;
Not managed in Beijing release.|string| + + + +### ServiceCharacteristic +ServiceCharacteristic + + +|Name|Description|Schema| +|---|---|---| +|**name**
*required*|Name of characteristic|string| +|**value**
*optional*||[Value](#value)| +|**valueType**
*optional*||string| + + + +### ServiceOrder +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 + + +|Name|Description|Schema| +|---|---|---| +|**@baseType**
*optional*||string| +|**@schemaLocation**
*optional*||string| +|**@type**
*optional*||string| +|**category**
*optional*|Used to categorize the order that can be useful for the OM system (e.g. “broadband”, “TVOption”, ...)|string| +|**completionDateTime**
*optional*|Date when the order was completed|string (date-time)| +|**description**
*optional*|A free-text description of the service order|string| +|**expectedCompletionDate**
*optional*||string (date-time)| +|**externalId**
*optional*|ID given by the consumer and only understandable by him (to facilitate his searches)|string| +|**href**
*optional*|Hyperlink to access the order|string| +|**id**
*required*|ID created on repository side|string| +|**orderDate**
*optional*||string (date-time)| +|**orderItem**
*optional*||< [ServiceOrderItem](#serviceorderitem) > array| +|**orderRelationship**
*optional*||< [OrderRelationship](#orderrelationship) > array| +|**priority**
*optional*|A way that can be used by consumers to prioritize orders in Service Order Management system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)|string| +|**relatedParty**
*optional*||< [RelatedParty](#relatedparty) > array| +|**requestedCompletionDate**
*optional*|Requested delivery date from the requestor perspective|string (date-time)| +|**requestedStartDate**
*optional*|Order start date wished by the requestor|string (date-time)| +|**startDate**
*optional*|Date when the order was started for processing|string (date-time)| +|**state**
*optional*||[StateType](#statetype)| + + + +### ServiceOrderItem +An identified part of the order. A service order is decomposed into one or more order items. + + +|Name|Description|Schema| +|---|---|---| +|**@baseType**
*optional*|not used in Beijing relase|string| +|**@schemaLocation**
*optional*|not used in Beijing relase|string| +|**@type**
*optional*|Used to extend the order item.
not used in Beijing relase|string| +|**action**
*optional*||[ActionType](#actiontype)| +|**id**
*required*|Identifier of the line item (generally it is a sequence number 01, 02, 03, …)|string| +|**orderItemRelationship**
*optional*||< [OrderItemRelationship](#orderitemrelationship) > array| +|**service**
*required*||[Service](#service)| +|**state**
*optional*||[StateType](#statetype)| + + + +### ServiceRef +Service references + + +|Name|Description|Schema| +|---|---|---| +|**href**
*optional*|Reference of the service|string| +|**id**
*required*|Unique identifier of the service|string| + + + +### ServiceRelationship +Linked Services to the one instantiate +nbi component used this relationship to sort request to ONAP. + + +|Name|Schema| +|---|---| +|**service**
*required*|[Service](#service)| +|**type**
*required*|[RelationshipType](#relationshiptype)| + + + +### ServiceSpecificationRef +The service specification (these attributes are fetched from the catalogue). + + +|Name|Description|Schema| +|---|---|---| +|**@baseType**
*optional*|Not used in Beijing release|string| +|**@schemaLocation**
*optional*|Not used in Beijing release|string| +|**@type**
*optional*|Not used in Beijing release|string| +|**href**
*optional*|Reference of the service specification
Not used in Beijing release.|string| +|**id**
*required*|Unique identifier of the service specification
This information will be used to retrieve SDC information + mapped to SO ModelNameVersionIdin the request.|string| +|**name**
*optional*|Name of the service specification
Not used in Beijing release|string| +|**targetServiceSchema**
*optional*||[TargetServiceSchema](#targetserviceschema)| +|**version**
*optional*|Version of the service Specification
Not used in Beijing release|string| + + + +### StateType +List of possible state for the order and the orderItem. + +*Type* : enum (acknowledged, rejected, pending, held, inProgress, cancelled, completed, failed, partial) + + + +### TargetServiceSchema +Target to the schema describing the service spec resource + + +|Name|Description|Schema| +|---|---|---| +|**@schemaLocation**
*required*|This field provided a link to the schema describing this REST resource.|string| +|**@type**
*required*|Indicates the (class) type of resource.|string| + + + +### Value +Value is a descriptive structure for service characteristic; +For Beijing we only manage 'basic' attribute - the serviceCharacteristicValue must be used. + + +|Name|Description|Schema| +|---|---|---| +|**@schemaLocation**
*optional*|This field provided a link to the schema describing this REST resource.
Not used in Beijing Release|string| +|**@type**
*optional*|Indicates the (class) type of resource.
Not used in Beijing Release|string| +|**serviceCharacteristicValue**
*optional*|Value of the characteristic.
This attribute must be used in Beijing Release to provide characteristic value.|string| + diff --git a/docs/offeredapis/swaggers/serviceCatalog_1_0_0.json b/docs/offeredapis/swaggers/serviceCatalog_1_0_0.json new file mode 100644 index 0000000..74daf5a --- /dev/null +++ b/docs/offeredapis/swaggers/serviceCatalog_1_0_0.json @@ -0,0 +1,652 @@ + +{ + "swagger": "2.0", + "info": { + "description": "serviceCatalog API designed for ONAP Beijing Release.\nThis API is build from TMF open API17.5\nonly operation GET (by id & byList) for resource serviceSpecification is available", + "version": "1.0.0", + "title": "API ServiceCatalog" + }, + "host": "serverRoot", + "basePath": "/nbi/api/v1", + "schemes": [ + "https" + ], + "consumes": [ + "application/json;charset=utf-8" + ], + "produces": [ + "application/json;charset=utf-8" + ], + "tags": [ + + { + "name": "ServiceSpecification", + "description": "" + } + ], + "paths": { + "/serviceSpecification": { + "get": { + "tags": [ + "ServiceSpecification" + ], + "operationId": "serviceSpecificationFind", + "summary": "List service specifications", + "description": "This operation returns service specifications from a catalog.\nOnly a predefined set of attribute is proposed : Based on SDC limitations, only attributes category and distributionStatus are available for serviceSpecification filtering\nFields attribute could be used to filter attributes retrieved\n\nSpecific business errors for current operation will be encapsulated in\n\nHTTP Response 422 Unprocessable entity\n", + "deprecated": false, + + "parameters": [ + + { + "name": "fields", + "required": false, + "in": "query", + "description": "Field selection - used to filtering the attributes to be retreived", + + "type": "string" + }, + { + "name": "category", + "required": false, + "in": "query", + "description": "Service Category (filter)", + + "type": "string" + }, + { + "name": "distributionStatus", + "required": false, + "in": "query", + "description": "Service distribution status (filter)", + + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ServiceSpecification" + } + } + + }, + "400": { + + "description": "Bad Request\n\nList of supported error codes:\n- 20: Invalid URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string parameter value", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "401": { + + "description": "Unauthorized\n\nList of supported error codes:\n- 40: Missing credentials\n- 41: Invalid credentials\n- 42: Expired credentials", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "403": { + + "description": "Forbidden\n\nList of supported error codes:\n- 50: Access denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many requests", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "404": { + + "description": "Not Found\n\nList of supported error codes:\n- 60: Resource not found", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "422": { + + "description": "Unprocessable entity\n\nFunctional error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "500": { + + "description": "Internal Server Error\n\nList of supported error codes:\n- 1: Internal error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "503": { + + "description": "Service Unavailable\n\nList of supported error codes:\n- 5: The service is temporarily unavailable\n- 6: Orange API is over capacity, retry later !", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + } + } + } + }, + "/serviceSpecification/{id}": { + "get": { + "tags": [ + "ServiceSpecification" + ], + "operationId": "serviceSpecificationGet", + "summary": "Retrieve a service specification", + "description": "This operation returns a service specification by its id from a catalog. Attribute selection is enabled using the fields attribute.\n\nSpecific business errors for current operation will be encapsulated in\n\nHTTP Response 422 Unprocessable entity\n", + "deprecated": false, + + "parameters": [ + + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "description": "" + }, + { + "name": "fields", + "required": false, + "in": "query", + "description": "Attribute selection", + + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ServiceSpecification" + } + + }, + "400": { + + "description": "Bad Request\n\nList of supported error codes:\n- 20: Invalid URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string parameter value", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "401": { + + "description": "Unauthorized\n\nList of supported error codes:\n- 40: Missing credentials\n- 41: Invalid credentials\n- 42: Expired credentials", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "403": { + + "description": "Forbidden\n\nList of supported error codes:\n- 50: Access denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many requests", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "404": { + + "description": "Not Found\n\nList of supported error codes:\n- 60: Resource not found", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "422": { + + "description": "Unprocessable entity\n\nFunctional error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "500": { + + "description": "Internal Server Error\n\nList of supported error codes:\n- 1: Internal error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "503": { + + "description": "Service Unavailable\n\nList of supported error codes:\n- 5: The service is temporarily unavailable\n- 6: Orange API is over capacity, retry later !", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + } + } + } + } + }, +"definitions": { + + "LifecycleStatusValues": { + "description": "Service lifecycle value from ONAP SDC", + + "type": "string", + "enum": [ + "NOT_CERTIFIED_CHECKOUT", + "NOT_CERTIFIED_CHECKIN", + "READY_FOR_CERTIFICATION", + "CERTIFICATION_IN_PROGRESS", + "CERTIFIED"] + + }, + "DistributionStatus": { + "description": "Service distribution status from ONAP.", + + "type": "string", + "enum": [ + "DISTRIBUTION_NOT_APPROVED", + "DISTRIBUTION_APPROVED", + "DISTRIBUTED", + "DISTRIBUTION_REJECTED"] + + }, + + "ErrorRepresentation": { + "description": "This class is used to describe error.\nfor nbi Beijing release we do not manage additional error for serviceCatalog", + + + "required": [ + + "code", + "reason" + ], + "type": "object", + "properties": { + "code": { + "description": "Application related code (as defined in the API or from a common list)", + "type": "integer", + "format": "int32" + }, + "reason": { + "description": "Text that explains the reason for error. This can be shown to a client user.", + "type": "string" + }, + "message": { + "description": "Text that provide more details and corrective actions related to the error. This can be shown to a client user", + "type": "string" + }, + "status": { + "description": "http error code extension like 400-2", + "type": "string" + }, + "referenceErrror": { + "description": "url pointing to documentation describing the error", + "type": "string" + }, + "@type": { + "description": "The class type of a REST resource.", + "type": "string" + }, + "@schemaLocation": { + "description": "it provides a link to the schema describing a REST resource.", + "type": "string" + } + } + + }, + + "TimePeriod": { + "description": "A time period", + + + "type": "object", + "properties": { + "startDateTime": { + "description": "Start date and time of the period", + "type": "string", + "format": "date-time" + }, + "endDateTime": { + "description": "End date and time of the period", + "type": "string", + "format": "date-time" + } + } + + }, + + "RelatedPartyRef": { + "description": "Party linked to the service catalog.\nin nbi we retrieve information about last updater of the service in SDC", + + + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the related party. Filled with lastUpdaterUserId", + "type": "string" + }, + "role": { + "description": "Role payed by the related party\nOnly role 'lastUpdater' is retrieved in Beijing release", + "type": "string" + }, + "name": { + "description": "Name of the related party - Filled with lastUpdatedFullName", + "type": "string" + } + } + + }, + + "ServiceSpecification": { + "description": "ServiceSpecification is a class that offers characteristics to describe a type of service. Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics.\nthe service information are retrieved in SDC", + + + "required": [ + + "invariantUUID" + ], + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the service specification. Filled with SDC Service uuid", + "type": "string" + }, + "href": { + "description": "Reference of the service specification- not mapped in Beijing", + "type": "string" + }, + "name": { + "description": "Name of the service specification- Filled with SDC Service name", + "type": "string" + }, + "description": { + "description": "A narrative that explains in detail what the service specification is - Filled with SDC Service description", + "type": "string" + }, + "@type": { + "description": "This attribute allows to dynamically extends TMF class. Valued with 'ONAPservice'. We used this features to add following attributes:\ninvariantUUID\ntoscaModelURL\ntoscaResourceName\ncategory (1)\nsubcategory (1)\ndistributionStatus", + "type": "string", + + "default": "ONAPservice" + }, + "@schemaLocation": { + "description": "Not used for Beijing release", + "type": "string" + }, + "@baseType": { + "description": "Not used for Beijing release", + "type": "string" + }, + "invariantUUID": { + "description": "Additional attribute (not in the TMF API) - extended through @type - invariantUUID", + "type": "string" + }, + "toscaModelURL": { + "description": "Additional attribute (not in the TMF API) - extended through @type - toscaModelURL", + "type": "string" + }, + "toscaResourceName": { + "description": "Additional attribute (not in the TMF API) - extended through @type - toscaResourceName", + "type": "string" + }, + "category": { + "description": "Additional attribute - extended through @type - category\nPlease note that this attribute is managed in TMF - in future release we'll introduce category resource", + "type": "string" + }, + "subcategory": { + "description": "Additional attribute - extended through @type - category\nPlease note that this attribute is managed in TMF - in future release we'll introduce category resourc", + "type": "string" + }, + "distributionStatus": { + + "$ref": "#/definitions/DistributionStatus" + }, + "version": { + "description": "Service specification version - Filled with SDC Service version", + "type": "string" + }, + "lifecycleStatus": { + + "$ref": "#/definitions/LifecycleStatusValues" + }, + "targetServiceSchema": { + + "$ref": "#/definitions/TargetServiceSchemaRef" + }, + "attachment": { + + "type": "array", + "items": { + "$ref": "#/definitions/Attachment" + } + }, + "relatedParty": { + + "type": "array", + "items": { + "$ref": "#/definitions/RelatedPartyRef" + } + }, + "resourceSpecification": { + + "type": "array", + "items": { + "$ref": "#/definitions/ResourceSpecificationRef" + } + }, + "serviceSpecCharacteristic": { + + "type": "array", + "items": { + "$ref": "#/definitions/ServiceSpecCharacteristic" + } + } + } + + }, + + "ServiceSpecCharacteristic": { + "description": "A characteristic quality or distinctive feature of a ServiceSpecification. \nServiceSpecCharacteristic are retrieved in the serviceTosca file in the topology_template section in the inputs section.", + + + "type": "object", + "properties": { + "name": { + "description": "Name of the characteristic - Filled with parameter_name", + "type": "string" + }, + "description": { + "description": "A narrative that explains in detail what the characteristic is - Filled with parameter_description", + "type": "string" + }, + "valueType": { + "description": "A kind of value that the characteristic can take on, such as numeric, text and so forth - Filled with parameter_type", + "type": "string" + }, + "@type": { + "description": "This attribute allows to dynamically extends TMF class. Valued with: 'ONAPserviceCharacteristic'. We do not used this features in nbi Beijing release.", + "type": "string" + }, + "@schemaLocation": { + "description": "An url pointing to type description - we do not use it in nbi Beijing release", + "type": "string" + }, + "required": { + "description": "A parameter to define if the characteristic is mandatory - Filled from parameter_required – if not fielded by default ‘true’", + "type": "boolean", + + "default": true + }, + "status": { + "description": "Status of the characteristic - filled with status_value", + "type": "string" + }, + "serviceSpecCharacteristicValue": { + + "type": "array", + "items": { + "$ref": "#/definitions/ServiceSpecCharacteristicValue" + } + } + } + + }, + + "Attachment": { + "description": "An attachment is a file uses to describe the service.\nIn nbi we use attachment to retrieve ONAP artifacts.", + + + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the attachment - filled with artifactUUID.", + "type": "string" + }, + "name": { + "description": "Name of the attachment - filled with artifactName", + "type": "string" + }, + "description": { + "description": "Description of the attachment - filled with artifactDescription", + "type": "string" + }, + "@type": { + "description": "This attribute allows to dynamically extends TMF class. Valued with 'ONAPartifact'. We used this features to add following attributes: \nartifactLabel\nartifactGroupType\nartifactTimeout\nartifactChecksum\nartifactVersion\ngeneratedFromUUID", + "type": "string", + + "default": "ONAPartifact" + }, + "artifactLabel": { + "description": "Additional attribute (not in the TMF API) - extended through @type - artifactLabel", + "type": "string" + }, + "artifactGroupType": { + "description": "Additional attribute (not in the TMF API) - extended through @type - artifactGroupType", + "type": "string" + }, + "artifactTimeout": { + "description": "Additional attribute (not in the TMF API) - extended through @type - artifactTimeout", + "type": "string" + }, + "artifactChecksum": { + "description": "Additional attribute (not in the TMF API) - extended through @type - artifactChecksum", + "type": "string" + }, + "artifactVersion": { + "description": "Additional attribute (not in the TMF API) - extended through @type - artifactVersion", + "type": "string" + }, + "generatedFromUUID": { + "description": "Additional attribute (not in the TMF API) - extended through @type - generatedFromUUID", + "type": "string" + }, + "url": { + "description": "Uniform Resource Locator, is a web page address - filled with artifactURL", + "type": "string" + }, + "mimeType": { + "description": "Filled with artifactType", + "type": "string" + } + } + + }, + + "ServiceSpecCharacteristicValue": { + "description": "A number or text that can be assigned to a service specification characteristic.\nServiceSpecCharacteristicValue are retrieved in the service Tosca file", + + + "type": "object", + "properties": { + "valueType": { + "description": "A kind of value that the characteristic can take on, such as numeric, text, and so forth\nRetrieved in the Tosca in the topology_template section in the inputs section - parameter_type. \nWe do not manage parameter_type= list or map for Beijing release", + "type": "string" + }, + "isDefault": { + "description": "Information calculated from parameter default in the Tosca file", + "type": "boolean" + }, + "value": { + "description": "A discrete value that the characteristic can take on", + "type": "string" + } + } + + }, + + "ResourceSpecificationRef": { + "description": "A list of resourceSpec identified to deliver the service.\nfor nbi we retrieve resource information available in service description (through SDC api) bu as well information retrieved in the TOSCA file.", + + + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the resource specification - filled with resourceUUID", + "type": "string" + }, + "version": { + "description": "Version for this resource specification - filled with resourceVersion", + "type": "string" + }, + "name": { + "description": "Name of the resource specification - filled with resourceName", + "type": "string" + }, + "@type": { + "description": "This attribute allows to dynamically extends TMF class. Valued with: 'ONAPresource'. We used this features to add following attributes:\nresourceInstanceName\nresourceInvariantUUID\nresourceType\nmodelCustomizationName\nmodelCustomizationId", + "type": "string", + + "default": "ONAPresource" + }, + "resourceInstanceName": { + "description": "Additional attribute (not in the TMF API) - extended through @type - resourceInstanceName", + "type": "string" + }, + "resourceInvariantUUID": { + "description": "Additional attribute (not in the TMF API) - extended through @type - resourceInvariantUUID", + "type": "string" + }, + "resourceType": { + "description": "Additional attribute (not in the TMF API) - extended through @type - resoucreType", + "type": "string" + }, + "modelCustomizationName": { + "description": "Additional attribute (not in the TMF API) - extended through @type - Retrieved in the TOSCA file : attribute name in topology_template/node_template for the resource", + "type": "string" + }, + "modelCustomizationId": { + "description": "Additional attribute (not in the TMF API) - extended through @type - Retrieved in the TOSCA file : attribute customizationUUID in topology_template/node_template for the resource", + "type": "string" + } + } + + }, + + "TargetServiceSchemaRef": { + "description": "", + + + "required": [ + + "@type", + "@schemaLocation" + ], + "type": "object", + "properties": { + "@type": { + "description": "", + "type": "string" + }, + "@schemaLocation": { + "description": "", + "type": "string" + } + } + + } + } +} + \ No newline at end of file diff --git a/docs/offeredapis/swaggers/serviceCatalog_1_0_0.yaml b/docs/offeredapis/swaggers/serviceCatalog_1_0_0.yaml new file mode 100644 index 0000000..95e62fa --- /dev/null +++ b/docs/offeredapis/swaggers/serviceCatalog_1_0_0.yaml @@ -0,0 +1,488 @@ +swagger: "2.0" +info: + description: "serviceCatalog API designed for ONAP Beijing Release.\nThis API is\ + \ build from TMF open API17.5\nonly operation GET (by id & byList) for resource\ + \ serviceSpecification is available" + version: "1.0.0" + title: "API ServiceCatalog" +host: "serverRoot" +basePath: "/nbi/api/v1" +schemes: +- "https" +consumes: +- "application/json;charset=utf-8" +produces: +- "application/json;charset=utf-8" +tags: +- name: "ServiceSpecification" + description: "" +paths: + /serviceSpecification: + get: + tags: + - "ServiceSpecification" + operationId: "serviceSpecificationFind" + summary: "List service specifications" + description: "This operation returns service specifications from a catalog.\n\ + Only a predefined set of attribute is proposed : Based on SDC limitations,\ + \ only attributes category and distributionStatus are available for serviceSpecification\ + \ filtering\nFields attribute could be used to filter attributes retrieved\n\ + \nSpecific business errors for current operation will be encapsulated in\n\ + \nHTTP Response 422 Unprocessable entity\n" + deprecated: false + parameters: + - name: "fields" + required: false + in: "query" + description: "Field selection - used to filtering the attributes to be retreived" + type: "string" + - name: "category" + required: false + in: "query" + description: "Service Category (filter)" + type: "string" + - name: "distributionStatus" + required: false + in: "query" + description: "Service distribution status (filter)" + type: "string" + responses: + 200: + description: "Success" + schema: + type: "array" + items: + $ref: "#/definitions/ServiceSpecification" + 400: + description: "Bad Request\n\nList of supported error codes:\n- 20: Invalid\ + \ URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing\ + \ body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid\ + \ header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string\ + \ parameter value" + schema: + $ref: "#/definitions/ErrorRepresentation" + 401: + description: "Unauthorized\n\nList of supported error codes:\n- 40: Missing\ + \ credentials\n- 41: Invalid credentials\n- 42: Expired credentials" + schema: + $ref: "#/definitions/ErrorRepresentation" + 403: + description: "Forbidden\n\nList of supported error codes:\n- 50: Access\ + \ denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many\ + \ requests" + schema: + $ref: "#/definitions/ErrorRepresentation" + 404: + description: "Not Found\n\nList of supported error codes:\n- 60: Resource\ + \ not found" + schema: + $ref: "#/definitions/ErrorRepresentation" + 422: + description: "Unprocessable entity\n\nFunctional error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 500: + description: "Internal Server Error\n\nList of supported error codes:\n\ + - 1: Internal error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 503: + description: "Service Unavailable\n\nList of supported error codes:\n- 5:\ + \ The service is temporarily unavailable\n- 6: Orange API is over capacity,\ + \ retry later !" + schema: + $ref: "#/definitions/ErrorRepresentation" + /serviceSpecification/{id}: + get: + tags: + - "ServiceSpecification" + operationId: "serviceSpecificationGet" + summary: "Retrieve a service specification" + description: "This operation returns a service specification by its id from\ + \ a catalog. Attribute selection is enabled using the fields attribute.\n\n\ + Specific business errors for current operation will be encapsulated in\n\n\ + HTTP Response 422 Unprocessable entity\n" + deprecated: false + parameters: + - name: "id" + in: "path" + required: true + type: "string" + description: "" + - name: "fields" + required: false + in: "query" + description: "Attribute selection" + type: "string" + responses: + 200: + description: "Success" + schema: + $ref: "#/definitions/ServiceSpecification" + 400: + description: "Bad Request\n\nList of supported error codes:\n- 20: Invalid\ + \ URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing\ + \ body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid\ + \ header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string\ + \ parameter value" + schema: + $ref: "#/definitions/ErrorRepresentation" + 401: + description: "Unauthorized\n\nList of supported error codes:\n- 40: Missing\ + \ credentials\n- 41: Invalid credentials\n- 42: Expired credentials" + schema: + $ref: "#/definitions/ErrorRepresentation" + 403: + description: "Forbidden\n\nList of supported error codes:\n- 50: Access\ + \ denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many\ + \ requests" + schema: + $ref: "#/definitions/ErrorRepresentation" + 404: + description: "Not Found\n\nList of supported error codes:\n- 60: Resource\ + \ not found" + schema: + $ref: "#/definitions/ErrorRepresentation" + 422: + description: "Unprocessable entity\n\nFunctional error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 500: + description: "Internal Server Error\n\nList of supported error codes:\n\ + - 1: Internal error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 503: + description: "Service Unavailable\n\nList of supported error codes:\n- 5:\ + \ The service is temporarily unavailable\n- 6: Orange API is over capacity,\ + \ retry later !" + schema: + $ref: "#/definitions/ErrorRepresentation" +definitions: + LifecycleStatusValues: + description: "Service lifecycle value from ONAP SDC" + type: "string" + enum: + - "NOT_CERTIFIED_CHECKOUT" + - "NOT_CERTIFIED_CHECKIN" + - "READY_FOR_CERTIFICATION" + - "CERTIFICATION_IN_PROGRESS" + - "CERTIFIED" + DistributionStatus: + description: "Service distribution status from ONAP." + type: "string" + enum: + - "DISTRIBUTION_NOT_APPROVED" + - "DISTRIBUTION_APPROVED" + - "DISTRIBUTED" + - "DISTRIBUTION_REJECTED" + ErrorRepresentation: + description: "This class is used to describe error.\nfor nbi Beijing release we\ + \ do not manage additional error for serviceCatalog" + required: + - "code" + - "reason" + type: "object" + properties: + code: + description: "Application related code (as defined in the API or from a common\ + \ list)" + type: "integer" + format: "int32" + reason: + description: "Text that explains the reason for error. This can be shown to\ + \ a client user." + type: "string" + message: + description: "Text that provide more details and corrective actions related\ + \ to the error. This can be shown to a client user" + type: "string" + status: + description: "http error code extension like 400-2" + type: "string" + referenceErrror: + description: "url pointing to documentation describing the error" + type: "string" + '@type': + description: "The class type of a REST resource." + type: "string" + '@schemaLocation': + description: "it provides a link to the schema describing a REST resource." + type: "string" + TimePeriod: + description: "A time period" + type: "object" + properties: + startDateTime: + description: "Start date and time of the period" + type: "string" + format: "date-time" + endDateTime: + description: "End date and time of the period" + type: "string" + format: "date-time" + RelatedPartyRef: + description: "Party linked to the service catalog.\nin nbi we retrieve information\ + \ about last updater of the service in SDC" + type: "object" + properties: + id: + description: "Unique identifier of the related party. Filled with lastUpdaterUserId" + type: "string" + role: + description: "Role payed by the related party\nOnly role 'lastUpdater' is\ + \ retrieved in Beijing release" + type: "string" + name: + description: "Name of the related party - Filled with lastUpdatedFullName" + type: "string" + ServiceSpecification: + description: "ServiceSpecification is a class that offers characteristics to describe\ + \ a type of service. Functionally, it acts as a template by which Services may\ + \ be instantiated. By sharing the same specification, these services would therefore\ + \ share the same set of characteristics.\nthe service information are retrieved\ + \ in SDC" + required: + - "invariantUUID" + type: "object" + properties: + id: + description: "Unique identifier of the service specification. Filled with\ + \ SDC Service uuid" + type: "string" + href: + description: "Reference of the service specification- not mapped in Beijing" + type: "string" + name: + description: "Name of the service specification- Filled with SDC Service name" + type: "string" + description: + description: "A narrative that explains in detail what the service specification\ + \ is - Filled with SDC Service description" + type: "string" + '@type': + description: "This attribute allows to dynamically extends TMF class. Valued\ + \ with 'ONAPservice'. We used this features to add following attributes:\n\ + invariantUUID\ntoscaModelURL\ntoscaResourceName\ncategory (1)\nsubcategory\ + \ (1)\ndistributionStatus" + type: "string" + default: "ONAPservice" + '@schemaLocation': + description: "Not used for Beijing release" + type: "string" + '@baseType': + description: "Not used for Beijing release" + type: "string" + invariantUUID: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - invariantUUID" + type: "string" + toscaModelURL: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - toscaModelURL" + type: "string" + toscaResourceName: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - toscaResourceName" + type: "string" + category: + description: "Additional attribute - extended through @type - category\nPlease\ + \ note that this attribute is managed in TMF - in future release we'll introduce\ + \ category resource" + type: "string" + subcategory: + description: "Additional attribute - extended through @type - category\nPlease\ + \ note that this attribute is managed in TMF - in future release we'll introduce\ + \ category resourc" + type: "string" + distributionStatus: + $ref: "#/definitions/DistributionStatus" + version: + description: "Service specification version - Filled with SDC Service version" + type: "string" + lifecycleStatus: + $ref: "#/definitions/LifecycleStatusValues" + targetServiceSchema: + $ref: "#/definitions/TargetServiceSchemaRef" + attachment: + type: "array" + items: + $ref: "#/definitions/Attachment" + relatedParty: + type: "array" + items: + $ref: "#/definitions/RelatedPartyRef" + resourceSpecification: + type: "array" + items: + $ref: "#/definitions/ResourceSpecificationRef" + serviceSpecCharacteristic: + type: "array" + items: + $ref: "#/definitions/ServiceSpecCharacteristic" + ServiceSpecCharacteristic: + description: "A characteristic quality or distinctive feature of a ServiceSpecification.\ + \ \nServiceSpecCharacteristic are retrieved in the serviceTosca file in the\ + \ topology_template section in the inputs section." + type: "object" + properties: + name: + description: "Name of the characteristic - Filled with parameter_name" + type: "string" + description: + description: "A narrative that explains in detail what the characteristic\ + \ is - Filled with parameter_description" + type: "string" + valueType: + description: "A kind of value that the characteristic can take on, such as\ + \ numeric, text and so forth - Filled with parameter_type" + type: "string" + '@type': + description: "This attribute allows to dynamically extends TMF class. Valued\ + \ with: 'ONAPserviceCharacteristic'. We do not used this features in nbi\ + \ Beijing release." + type: "string" + '@schemaLocation': + description: "An url pointing to type description - we do not use it in nbi\ + \ Beijing release" + type: "string" + required: + description: "A parameter to define if the characteristic is mandatory - Filled\ + \ from parameter_required – if not fielded by default ‘true’" + type: "boolean" + default: true + status: + description: "Status of the characteristic - filled with status_value" + type: "string" + serviceSpecCharacteristicValue: + type: "array" + items: + $ref: "#/definitions/ServiceSpecCharacteristicValue" + Attachment: + description: "An attachment is a file uses to describe the service.\nIn nbi we\ + \ use attachment to retrieve ONAP artifacts." + type: "object" + properties: + id: + description: "Unique identifier of the attachment - filled with artifactUUID." + type: "string" + name: + description: "Name of the attachment - filled with artifactName" + type: "string" + description: + description: "Description of the attachment - filled with artifactDescription" + type: "string" + '@type': + description: "This attribute allows to dynamically extends TMF class. Valued\ + \ with 'ONAPartifact'. We used this features to add following attributes:\ + \ \nartifactLabel\nartifactGroupType\nartifactTimeout\nartifactChecksum\n\ + artifactVersion\ngeneratedFromUUID" + type: "string" + default: "ONAPartifact" + artifactLabel: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - artifactLabel" + type: "string" + artifactGroupType: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - artifactGroupType" + type: "string" + artifactTimeout: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - artifactTimeout" + type: "string" + artifactChecksum: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - artifactChecksum" + type: "string" + artifactVersion: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - artifactVersion" + type: "string" + generatedFromUUID: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - generatedFromUUID" + type: "string" + url: + description: "Uniform Resource Locator, is a web page address - filled with\ + \ artifactURL" + type: "string" + mimeType: + description: "Filled with artifactType" + type: "string" + ServiceSpecCharacteristicValue: + description: "A number or text that can be assigned to a service specification\ + \ characteristic.\nServiceSpecCharacteristicValue are retrieved in the service\ + \ Tosca file" + type: "object" + properties: + valueType: + description: "A kind of value that the characteristic can take on, such as\ + \ numeric, text, and so forth\nRetrieved in the Tosca in the topology_template\ + \ section in the inputs section - parameter_type. \nWe do not manage parameter_type=\ + \ list or map for Beijing release" + type: "string" + isDefault: + description: "Information calculated from parameter default in the Tosca file" + type: "boolean" + value: + description: "A discrete value that the characteristic can take on" + type: "string" + ResourceSpecificationRef: + description: "A list of resourceSpec identified to deliver the service.\nfor nbi\ + \ we retrieve resource information available in service description (through\ + \ SDC api) bu as well information retrieved in the TOSCA file." + type: "object" + properties: + id: + description: "Unique identifier of the resource specification - filled with\ + \ resourceUUID" + type: "string" + version: + description: "Version for this resource specification - filled with resourceVersion" + type: "string" + name: + description: "Name of the resource specification - filled with resourceName" + type: "string" + '@type': + description: "This attribute allows to dynamically extends TMF class. Valued\ + \ with: 'ONAPresource'. We used this features to add following attributes:\n\ + resourceInstanceName\nresourceInvariantUUID\nresourceType\nmodelCustomizationName\n\ + modelCustomizationId" + type: "string" + default: "ONAPresource" + resourceInstanceName: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - resourceInstanceName" + type: "string" + resourceInvariantUUID: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - resourceInvariantUUID" + type: "string" + resourceType: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - resoucreType" + type: "string" + modelCustomizationName: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - Retrieved in the TOSCA file : attribute name in topology_template/node_template\ + \ for the resource" + type: "string" + modelCustomizationId: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @type - Retrieved in the TOSCA file : attribute customizationUUID in topology_template/node_template\ + \ for the resource" + type: "string" + TargetServiceSchemaRef: + description: "" + required: + - "@type" + - "@schemaLocation" + type: "object" + properties: + '@type': + description: "" + type: "string" + '@schemaLocation': + description: "" + type: "string" diff --git a/docs/offeredapis/swaggers/serviceInventory_1_0_0.json b/docs/offeredapis/swaggers/serviceInventory_1_0_0.json new file mode 100644 index 0000000..5c2c7c5 --- /dev/null +++ b/docs/offeredapis/swaggers/serviceInventory_1_0_0.json @@ -0,0 +1,620 @@ + +{ + "swagger": "2.0", + "info": { + "description": "serviceInventory API designed for ONAP Beijing Release.\nThis API is build from TMF open API18.0 (applying TMF Guideline 3.0)\nonly operation GET (by id & byList) for resource serviceSpecification is available", + "version": "1.0.0", + "title": "API ServiceInventory" + }, + + "host": "serverRoot", + "basePath": "/nbi/api/v1", + "schemes": [ + "https" + ], + "consumes": [ + "application/json;charset=utf-8" + ], + "produces": [ + "application/json;charset=utf-8" + ], + "tags": [ + + { + "name": "Service", + "description": "" + } + ], + "paths": { + "/service": { + "get": { + "tags": [ + "Service" + ], + "operationId": "serviceFind", + "summary": "List services", + "description": "This operation list service entities. \nAttribute selection is restricted. \nfields attribute may be used to filter retrieved attribute(s) for each service\n\nSpecific business errors for current operation will be encapsulated in\n\nHTTP Response 422 Unprocessable entity\n", + "deprecated": false, + + "parameters": [ + + { + "name": "relatedParty.id", + "required": false, + "in": "query", + "description": "", + + "type": "string" + }, + { + "name": "serviceSpecification.id", + "required": false, + "in": "query", + "description": "", + + "type": "string" + }, + { + "name": "serviceSpecification.name", + "required": false, + "in": "query", + "description": "", + + "type": "string" + }, + { + "name": "id", + "required": false, + "in": "query", + "description": "", + + "type": "string" + }, + { + "name": "fields", + "required": false, + "in": "query", + "description": "", + + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ListService" + } + } + + }, + "400": { + + "description": "Bad Request\n\nList of supported error codes:\n- 20: Invalid URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string parameter value", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "401": { + + "description": "Unauthorized\n\nList of supported error codes:\n- 40: Missing credentials\n- 41: Invalid credentials\n- 42: Expired credentials", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "403": { + + "description": "Forbidden\n\nList of supported error codes:\n- 50: Access denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many requests", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "404": { + + "description": "Not Found\n\nList of supported error codes:\n- 60: Resource not found", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "422": { + + "description": "Unprocessable entity\n\nFunctional error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "500": { + + "description": "Internal Server Error\n\nList of supported error codes:\n- 1: Internal error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "503": { + + "description": "Service Unavailable\n\nList of supported error codes:\n- 5: The service is temporarily unavailable\n- 6: Orange API is over capacity, retry later !", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + } + } + } + }, + "/service/{id}": { + "get": { + "tags": [ + "Service" + ], + "operationId": "serviceGet", + "summary": "Retrieve a service", + "description": "This operation retrieves a service entity. \nAttribute selection is enabled for all first level attributes.\n\nSpecific business errors for current operation will be encapsulated in\n\nHTTP Response 422 Unprocessable entity\n", + "deprecated": false, + + "parameters": [ + + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "description": "" + }, + { + "name": "relatedParty.id", + "required": false, + "in": "query", + "description": "", + + "type": "string" + }, + { + "name": "serviceSpecification.id", + "required": false, + "in": "query", + "description": "", + + "type": "string" + }, + { + "name": "serviceSpecification.name", + "required": false, + "in": "query", + "description": "", + + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Service" + } + + }, + "400": { + + "description": "Bad Request\n\nList of supported error codes:\n- 20: Invalid URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string parameter value", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "401": { + + "description": "Unauthorized\n\nList of supported error codes:\n- 40: Missing credentials\n- 41: Invalid credentials\n- 42: Expired credentials", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "403": { + + "description": "Forbidden\n\nList of supported error codes:\n- 50: Access denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many requests", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "404": { + + "description": "Not Found\n\nList of supported error codes:\n- 60: Resource not found", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "422": { + + "description": "Unprocessable entity\n\nFunctional error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "500": { + + "description": "Internal Server Error\n\nList of supported error codes:\n- 1: Internal error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "503": { + + "description": "Service Unavailable\n\nList of supported error codes:\n- 5: The service is temporarily unavailable\n- 6: Orange API is over capacity, retry later !", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + } + } + } + } + }, +"definitions": { + + "stateValues": { + "description": "", + + "type": "string", + "enum": [ + "feasibilityChecked", + "designed", + "reserved", + "inactive", + "active", + "terminated"] + + }, + + "ErrorRepresentation": { + "description": "This class is used to describe error.\nfor nbi Beijing release we do not manage additional error for serviceCatalog", + + + "required": [ + + "code", + "reason" + ], + "type": "object", + "properties": { + "code": { + "description": "Application related code (as defined in the API or from a common list)", + "type": "integer", + "format": "int32" + }, + "reason": { + "description": "Text that explains the reason for error. This can be shown to a client user.", + "type": "string" + }, + "message": { + "description": "Text that provide more details and corrective actions related to the error. This can be shown to a client user.", + "type": "string" + }, + "status": { + "description": "http error code extension like 400-2", + "type": "string" + }, + "referenceError": { + "description": "url pointing to documentation describing the error", + "type": "string" + }, + "@type": { + "description": "The class type of a REST resource.", + "type": "string" + }, + "@schemaLocation": { + "description": "it provides a link to the schema describing a REST resource.", + "type": "string" + } + } + + }, + + "Service": { + "description": "Instantiated service (service_instance) in AAI", + + + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the service - Valued with service-instance-id", + "type": "string" + }, + "href": { + "description": "Reference of the service\nNot managed in Beijing release", + "type": "string" + }, + "name": { + "description": "Name of the service - Valued with service-instance-name", + "type": "string" + }, + "type": { + "description": "Service type - valued with 'service-instance'", + "type": "string" + }, + "state": { + + "$ref": "#/definitions/stateValues" + }, + "hasStarted": { + "description": "This is a Boolean attribute that, if TRUE, signifies that this Service has already been started. If the value of this attribute is FALSE, then this signifies that this Service has NOT been Started\nNot managed in Beijing release", + "type": "boolean" + }, + "@type": { + "description": "This attribute allows to dynamically extends TMF class. Not used in Beijing release.", + "type": "string" + }, + "@baseType": { + "description": "Not managed in Beijing release", + "type": "string" + }, + "@schemaLocation": { + "description": "Not managed in Beijing release", + "type": "string" + }, + "serviceSpecification": { + + "$ref": "#/definitions/ServiceSpecificationRef" + }, + "characteristic": { + + "type": "array", + "items": { + "$ref": "#/definitions/ServiceCharacteristic" + } + }, + "supportingResource": { + + "type": "array", + "items": { + "$ref": "#/definitions/SupportingResource" + } + }, + "relatedParty": { + + "type": "array", + "items": { + "$ref": "#/definitions/RelatedPartyRef" + } + } + } + + }, + + "ServiceSpecificationRef": { + "description": "Service specification reference: ServiceSpecification of this service (catalog information)", + + + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the service specification. valued to model-version-id", + "type": "string" + }, + "href": { + "description": "Reference of the service specification.\nnot managed in Beijing release.", + "type": "string" + }, + "name": { + "description": "Name of the required service specification", + "type": "string" + }, + "version": { + "description": "Service specification version.\nNot managed in Beijing release", + "type": "string" + }, + "@referredType": { + "description": "This attribute allows to dynamically extends TMF class. Valued with 'ONAPservice'. We used this features to add following attribute: invariantUUID", + "type": "string" + }, + "@schemaLocation": { + "description": "Not managed in Beijing release", + "type": "string" + }, + "invariantUUID": { + "description": "Additional attribute (not in the TMF API) - extended through @referredType - model-invariant-id", + "type": "string" + } + } + + }, + + "ServiceCharacteristic": { + "description": "A list of name value pairs that define the service characteristics\nNot managed in Beijing release.", + + + "required": [ + + "name" + ], + "type": "object", + "properties": { + "name": { + "description": "Name of the characteristic\nNot managed in Beijing release.", + "type": "string" + }, + "valueType": { + "description": "Type of value for this characteristic.\nNot managed in Beijing release.", + "type": "string" + }, + "value": { + + "$ref": "#/definitions/Value" + } + } + + }, + + "SupportingResource": { + "description": "Supporting resource - A supportingResource will be retrieved for each relationship of the relationship-list where related-link describe a vnf", + + + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the supporting resource - Valued to vnf-id", + "type": "string" + }, + "href": { + "description": "Reference of the supporting resource", + "type": "string" + }, + "role": { + "description": "Not managed in Beijing release.", + "type": "string" + }, + "name": { + "description": "Name of the supporting resource - Valued with vnf_-name", + "type": "string" + }, + "@referredType": { + "description": "This attribute allows to dynamically extends TMF class. Valued with 'ONAP resource'. We used this features to add following attributes:\n status\t\n modelInvariantId\n modelVersionId\n modelCustomisationId", + "type": "string" + }, + "@schemaLocation": { + "description": "Not managed in Beijing release.", + "type": "string" + }, + "status": { + "description": "Additional attribute (not in the TMF API) - extended through @referredType - valued with prov-status", + "type": "string" + }, + "modelInvariantId": { + "description": "Additional attribute (not in the TMF API) - extended through @referredType - valued with model-invariant-id", + "type": "string" + }, + "modelVersionId": { + "description": "Additional attribute (not in the TMF API) - extended through @referredType - valued with model-verson-id", + "type": "string" + }, + "modelCustomisationId": { + "description": "Additional attribute (not in the TMF API) - extended through @referredType - valued with model-customisation-id", + "type": "string" + } + } + + }, + + "RelatedPartyRef": { + "description": "RelatedParty reference. A related party defines party or party role linked to a specific entity.\nOnly ONAP Customer is managed in Beijing release.", + + + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of a related party", + "type": "string" + }, + "href": { + "description": "Reference of a related party.\nNot filled in Beijing release.", + "type": "string" + }, + "role": { + "description": "Role played by the related party.\nFilled with 'ONAPcustomer'", + "type": "string" + }, + "@referredType": { + "description": "Not managed in the Beijing release.", + "type": "string" + } + } + + }, + + "Value": { + "description": "Structure used to describe characteristic value.\nNot managed in Beijing release.", + + + "type": "object", + "properties": { + "@type": { + "description": "Not managed in Beijing release.", + "type": "string" + }, + "@schemaLocation": { + "description": "Not managed in Beijing release.", + "type": "string" + }, + "serviceCharacteristicValue": { + "description": "Not managed in Beijing release.", + "type": "string" + } + } + + }, + + "ListRelatedPartyRef": { + "description": "This class is used to structure list of service(s) retrieved", + + + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of a related party", + "type": "string" + }, + "role": { + "description": "Role played by the related party - only role “ONAPcustomer” is managed in Beijing release.", + "type": "string" + } + } + + }, + + "ListServiceSpecificationRef": { + "description": "This class is used to structure list of service(s) retrieved", + + + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the service specification", + "type": "string" + }, + "name": { + "description": "Name of the required service specification", + "type": "string" + } + } + + }, + + "ListService": { + "description": "This class is used to structure list of service(s) retrieved", + + + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the service", + "type": "string" + }, + "name": { + "description": "Name of the service", + "type": "string" + }, + "serviceSpecification": { + + "$ref": "#/definitions/ListServiceSpecificationRef" + }, + "relatedParty": { + + "$ref": "#/definitions/ListRelatedPartyRef" + } + } + + } + } +} + \ No newline at end of file diff --git a/docs/offeredapis/swaggers/serviceInventory_1_0_0.yaml b/docs/offeredapis/swaggers/serviceInventory_1_0_0.yaml new file mode 100644 index 0000000..99af226 --- /dev/null +++ b/docs/offeredapis/swaggers/serviceInventory_1_0_0.yaml @@ -0,0 +1,423 @@ +swagger: "2.0" +info: + description: "serviceInventory API designed for ONAP Beijing Release.\nThis API\ + \ is build from TMF open API18.0 (applying TMF Guideline 3.0)\nonly operation\ + \ GET (by id & byList) for resource serviceSpecification is available" + version: "1.0.0" + title: "API ServiceInventory" +host: "serverRoot" +basePath: "/nbi/api/v1" +schemes: +- "https" +consumes: +- "application/json;charset=utf-8" +produces: +- "application/json;charset=utf-8" +tags: +- name: "Service" + description: "" +paths: + /service: + get: + tags: + - "Service" + operationId: "serviceFind" + summary: "List services" + description: "This operation list service entities. \nAttribute selection is\ + \ restricted. \nfields attribute may be used to filter retrieved attribute(s)\ + \ for each service\n\nSpecific business errors for current operation will\ + \ be encapsulated in\n\nHTTP Response 422 Unprocessable entity\n" + deprecated: false + parameters: + - name: "relatedParty.id" + required: false + in: "query" + description: "" + type: "string" + - name: "serviceSpecification.id" + required: false + in: "query" + description: "" + type: "string" + - name: "serviceSpecification.name" + required: false + in: "query" + description: "" + type: "string" + - name: "id" + required: false + in: "query" + description: "" + type: "string" + - name: "fields" + required: false + in: "query" + description: "" + type: "string" + responses: + 200: + description: "Success" + schema: + type: "array" + items: + $ref: "#/definitions/ListService" + 400: + description: "Bad Request\n\nList of supported error codes:\n- 20: Invalid\ + \ URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing\ + \ body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid\ + \ header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string\ + \ parameter value" + schema: + $ref: "#/definitions/ErrorRepresentation" + 401: + description: "Unauthorized\n\nList of supported error codes:\n- 40: Missing\ + \ credentials\n- 41: Invalid credentials\n- 42: Expired credentials" + schema: + $ref: "#/definitions/ErrorRepresentation" + 403: + description: "Forbidden\n\nList of supported error codes:\n- 50: Access\ + \ denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many\ + \ requests" + schema: + $ref: "#/definitions/ErrorRepresentation" + 404: + description: "Not Found\n\nList of supported error codes:\n- 60: Resource\ + \ not found" + schema: + $ref: "#/definitions/ErrorRepresentation" + 422: + description: "Unprocessable entity\n\nFunctional error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 500: + description: "Internal Server Error\n\nList of supported error codes:\n\ + - 1: Internal error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 503: + description: "Service Unavailable\n\nList of supported error codes:\n- 5:\ + \ The service is temporarily unavailable\n- 6: Orange API is over capacity,\ + \ retry later !" + schema: + $ref: "#/definitions/ErrorRepresentation" + /service/{id}: + get: + tags: + - "Service" + operationId: "serviceGet" + summary: "Retrieve a service" + description: "This operation retrieves a service entity. \nAttribute selection\ + \ is enabled for all first level attributes.\n\nSpecific business errors for\ + \ current operation will be encapsulated in\n\nHTTP Response 422 Unprocessable\ + \ entity\n" + deprecated: false + parameters: + - name: "id" + in: "path" + required: true + type: "string" + description: "" + - name: "relatedParty.id" + required: false + in: "query" + description: "" + type: "string" + - name: "serviceSpecification.id" + required: false + in: "query" + description: "" + type: "string" + - name: "serviceSpecification.name" + required: false + in: "query" + description: "" + type: "string" + responses: + 200: + description: "Success" + schema: + $ref: "#/definitions/Service" + 400: + description: "Bad Request\n\nList of supported error codes:\n- 20: Invalid\ + \ URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing\ + \ body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid\ + \ header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string\ + \ parameter value" + schema: + $ref: "#/definitions/ErrorRepresentation" + 401: + description: "Unauthorized\n\nList of supported error codes:\n- 40: Missing\ + \ credentials\n- 41: Invalid credentials\n- 42: Expired credentials" + schema: + $ref: "#/definitions/ErrorRepresentation" + 403: + description: "Forbidden\n\nList of supported error codes:\n- 50: Access\ + \ denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many\ + \ requests" + schema: + $ref: "#/definitions/ErrorRepresentation" + 404: + description: "Not Found\n\nList of supported error codes:\n- 60: Resource\ + \ not found" + schema: + $ref: "#/definitions/ErrorRepresentation" + 422: + description: "Unprocessable entity\n\nFunctional error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 500: + description: "Internal Server Error\n\nList of supported error codes:\n\ + - 1: Internal error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 503: + description: "Service Unavailable\n\nList of supported error codes:\n- 5:\ + \ The service is temporarily unavailable\n- 6: Orange API is over capacity,\ + \ retry later !" + schema: + $ref: "#/definitions/ErrorRepresentation" +definitions: + stateValues: + description: "" + type: "string" + enum: + - "feasibilityChecked" + - "designed" + - "reserved" + - "inactive" + - "active" + - "terminated" + ErrorRepresentation: + description: "This class is used to describe error.\nfor nbi Beijing release we\ + \ do not manage additional error for serviceCatalog" + required: + - "code" + - "reason" + type: "object" + properties: + code: + description: "Application related code (as defined in the API or from a common\ + \ list)" + type: "integer" + format: "int32" + reason: + description: "Text that explains the reason for error. This can be shown to\ + \ a client user." + type: "string" + message: + description: "Text that provide more details and corrective actions related\ + \ to the error. This can be shown to a client user." + type: "string" + status: + description: "http error code extension like 400-2" + type: "string" + referenceError: + description: "url pointing to documentation describing the error" + type: "string" + '@type': + description: "The class type of a REST resource." + type: "string" + '@schemaLocation': + description: "it provides a link to the schema describing a REST resource." + type: "string" + Service: + description: "Instantiated service (service_instance) in AAI" + type: "object" + properties: + id: + description: "Unique identifier of the service - Valued with service-instance-id" + type: "string" + href: + description: "Reference of the service\nNot managed in Beijing release" + type: "string" + name: + description: "Name of the service - Valued with service-instance-name" + type: "string" + type: + description: "Service type - valued with 'service-instance'" + type: "string" + state: + $ref: "#/definitions/stateValues" + hasStarted: + description: "This is a Boolean attribute that, if TRUE, signifies that this\ + \ Service has already been started. If the value of this attribute is FALSE,\ + \ then this signifies that this Service has NOT been Started\nNot managed\ + \ in Beijing release" + type: "boolean" + '@type': + description: "This attribute allows to dynamically extends TMF class. Not\ + \ used in Beijing release." + type: "string" + '@baseType': + description: "Not managed in Beijing release" + type: "string" + '@schemaLocation': + description: "Not managed in Beijing release" + type: "string" + serviceSpecification: + $ref: "#/definitions/ServiceSpecificationRef" + characteristic: + type: "array" + items: + $ref: "#/definitions/ServiceCharacteristic" + supportingResource: + type: "array" + items: + $ref: "#/definitions/SupportingResource" + relatedParty: + type: "array" + items: + $ref: "#/definitions/RelatedPartyRef" + ServiceSpecificationRef: + description: "Service specification reference: ServiceSpecification of this service\ + \ (catalog information)" + type: "object" + properties: + id: + description: "Unique identifier of the service specification. valued to model-version-id" + type: "string" + href: + description: "Reference of the service specification.\nnot managed in Beijing\ + \ release." + type: "string" + name: + description: "Name of the required service specification" + type: "string" + version: + description: "Service specification version.\nNot managed in Beijing release" + type: "string" + '@referredType': + description: "This attribute allows to dynamically extends TMF class. Valued\ + \ with 'ONAPservice'. We used this features to add following attribute:\ + \ invariantUUID" + type: "string" + '@schemaLocation': + description: "Not managed in Beijing release" + type: "string" + invariantUUID: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @referredType - model-invariant-id" + type: "string" + ServiceCharacteristic: + description: "A list of name value pairs that define the service characteristics\n\ + Not managed in Beijing release." + required: + - "name" + type: "object" + properties: + name: + description: "Name of the characteristic\nNot managed in Beijing release." + type: "string" + valueType: + description: "Type of value for this characteristic.\nNot managed in Beijing\ + \ release." + type: "string" + value: + $ref: "#/definitions/Value" + SupportingResource: + description: "Supporting resource - A supportingResource will be retrieved for\ + \ each relationship of the relationship-list where related-link describe a vnf" + type: "object" + properties: + id: + description: "Unique identifier of the supporting resource - Valued to vnf-id" + type: "string" + href: + description: "Reference of the supporting resource" + type: "string" + role: + description: "Not managed in Beijing release." + type: "string" + name: + description: "Name of the supporting resource - Valued with vnf_-name" + type: "string" + '@referredType': + description: "This attribute allows to dynamically extends TMF class. Valued\ + \ with 'ONAP resource'. We used this features to add following attributes:\n\ + \ status\t\n modelInvariantId\n modelVersionId\n modelCustomisationId" + type: "string" + '@schemaLocation': + description: "Not managed in Beijing release." + type: "string" + status: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @referredType - valued with prov-status" + type: "string" + modelInvariantId: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @referredType - valued with model-invariant-id" + type: "string" + modelVersionId: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @referredType - valued with model-verson-id" + type: "string" + modelCustomisationId: + description: "Additional attribute (not in the TMF API) - extended through\ + \ @referredType - valued with model-customisation-id" + type: "string" + RelatedPartyRef: + description: "RelatedParty reference. A related party defines party or party role\ + \ linked to a specific entity.\nOnly ONAP Customer is managed in Beijing release." + type: "object" + properties: + id: + description: "Unique identifier of a related party" + type: "string" + href: + description: "Reference of a related party.\nNot filled in Beijing release." + type: "string" + role: + description: "Role played by the related party.\nFilled with 'ONAPcustomer'" + type: "string" + '@referredType': + description: "Not managed in the Beijing release." + type: "string" + Value: + description: "Structure used to describe characteristic value.\nNot managed in\ + \ Beijing release." + type: "object" + properties: + '@type': + description: "Not managed in Beijing release." + type: "string" + '@schemaLocation': + description: "Not managed in Beijing release." + type: "string" + serviceCharacteristicValue: + description: "Not managed in Beijing release." + type: "string" + ListRelatedPartyRef: + description: "This class is used to structure list of service(s) retrieved" + type: "object" + properties: + id: + description: "Unique identifier of a related party" + type: "string" + role: + description: "Role played by the related party - only role “ONAPcustomer”\ + \ is managed in Beijing release." + type: "string" + ListServiceSpecificationRef: + description: "This class is used to structure list of service(s) retrieved" + type: "object" + properties: + id: + description: "Unique identifier of the service specification" + type: "string" + name: + description: "Name of the required service specification" + type: "string" + ListService: + description: "This class is used to structure list of service(s) retrieved" + type: "object" + properties: + id: + description: "Unique identifier of the service" + type: "string" + name: + description: "Name of the service" + type: "string" + serviceSpecification: + $ref: "#/definitions/ListServiceSpecificationRef" + relatedParty: + $ref: "#/definitions/ListRelatedPartyRef" diff --git a/docs/offeredapis/swaggers/serviceOrder_1_0_0.json b/docs/offeredapis/swaggers/serviceOrder_1_0_0.json new file mode 100644 index 0000000..9df30a3 --- /dev/null +++ b/docs/offeredapis/swaggers/serviceOrder_1_0_0.json @@ -0,0 +1,1071 @@ + +{ + "swagger": "2.0", + "info": { + "description": "serviceOrder API designed for ONAP Beijing Release.\nThis API is build from TMF open API18.0 (applying TMF Guideline 3.0);\nOnly operations GET (by id and list) and POST are available.", + "version": "1.0.0_inProgress", + "title": "API ServiceOrder", + "x-logo": { + "url": "/redoc/logo.png", + "backgroundColor": "#FFFFFF" + } + }, + + "host": "serverRoot", + "basePath": "/nbi/api/v1", + "schemes": [ + "https" + ], + "consumes": [ + "application/json;charset=utf-8" + ], + "produces": [ + "application/json;charset=utf-8" + ], + "tags": [ + + { + "name": "ServiceOrder", + "description": "A Service Order is a type of order which can be used to describe a group of operations on service – one service order item per service. An action at the level of the service order item describe the operation to be done on a service (add, terminate for example). The service order is triggered from the BSS system in charge of the product order management to ONAP that will manage the service fulfillment." + } + ], + "paths": { + "/serviceOrder": { + "post": { + "tags": [ + "ServiceOrder" + ], + "operationId": "serviceOrderCreate", + "summary": "Create a service order", + "description": "This operation creates a service order entity.\nThe TMF Open API specification document provides the list of mandatory and non mandatory attributes when creating a ServiceOrder, including any possible rule conditions and applicable default values.\nPOST should be used without specifying the id and the href, the Service Order Management system is in charge of generating the id + href for the ServiceOrder.\n\nSpecific business errors for current operation will be encapsulated in\n\nHTTP Response 422 Unprocessable entity\n\n - 100: OrderItem with 'add' action but serviceSpecification id missing\n \n - 101: OrderItem with 'change'/'noChange'/'remove' but service id missing\n \n - 102: OrderItem with 'add' action - serviceSpecification id provided but not existing\n \n - 103: OrderItem with 'add' action but service id already existing in the inventory\n \n - 104: A customer for existing service(s) is provided but he did not exist\n \n - 105: OrderItem with 'change'/'noChange'/'remove' - Service id provided but it is not existing in the inventory\n \n - 106: [Not managed for current Relese] Issue with lcpCloudRegionId and tenantId provided\n ", + "deprecated": false, + + "parameters": [ + + { + "name": "serviceOrder", + "required": true, + "in": "body", + "description": "", + "schema": { + "$ref": "#/definitions/CreateServiceOrder" + } + } + ], + "responses": { + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/CreateServiceOrder" + } + + }, + "400": { + + "description": "Bad Request\n\nList of supported error codes:\n- 20: Invalid URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string parameter value", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "401": { + + "description": "Unauthorized\n\nList of supported error codes:\n- 40: Missing credentials\n- 41: Invalid credentials\n- 42: Expired credentials", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "403": { + + "description": "Forbidden\n\nList of supported error codes:\n- 50: Access denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many requests", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "404": { + + "description": "Not Found\n\nList of supported error codes:\n- 60: Resource not found", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "422": { + + "description": "Unprocessable entity\n\nFunctional error\n\nSpecific encapsulated business errors for current operation\n\n - 100: OrderItem with 'add' action but serviceSpecification id missing\n \n - 101: OrderItem with 'change'/'noChange'/'remove' but service id missing\n \n - 102: OrderItem with 'add' action - serviceSpecification id provided but not existing\n \n - 103: OrderItem with 'add' action but service id already existing in the inventory\n \n - 104: A customer for existing service(s) is provided but he did not exist\n \n - 105: OrderItem with 'change'/'noChange'/'remove' - Service id provided but it is not existing in the inventory\n \n - 106: [Not managed for current Relese] Issue with lcpCloudRegionId and tenantId provided\n ", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "500": { + + "description": "Internal Server Error\n\nList of supported error codes:\n- 1: Internal error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "503": { + + "description": "Service Unavailable\n\nList of supported error codes:\n- 5: The service is temporarily unavailable\n- 6: Orange API is over capacity, retry later !", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + } + } + }, + "get": { + "tags": [ + "ServiceOrder" + ], + "operationId": "serviceOrderFind", + "summary": "List service orders", + "description": "Retrieve and list service order entities according to given criteria.\nOnly a predefined set of attribute is proposed.\nAttribute selection could be described in the fields attribute.\n\nSpecific business errors for current operation will be encapsulated in\n\nHTTP Response 422 Unprocessable entity\n", + "deprecated": false, + + "parameters": [ + + { + "name": "externalId", + "required": false, + "in": "query", + "description": "", + + "type": "string" + }, + { + "name": "state", + "required": false, + "in": "query", + "description": "state of the order(s) to be retrieved", + + "type": "string" + }, + { + "name": "description", + "required": false, + "in": "query", + "description": "", + + "type": "string" + }, + { + "name": "orderDate.gt", + "required": false, + "in": "query", + "description": "order date greather than", + + "type": "string" + }, + { + "name": "orderDate.lt", + "required": false, + "in": "query", + "description": "order date lower than", + + "type": "string" + }, + { + "name": "fields", + "required": false, + "in": "query", + "description": "this attribute could be used to filter retrieved attribute(s) and/or sort SO.", + + "type": "string" + }, + { + "name": "offset", + "required": false, + "in": "query", + "description": "The index of the first element to retrieve. Zero is the first element of the collection.", + + "type": "integer", + "format": "int32" + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The maximum number of elements to retrieve (it can be greater than the actual available number of items).", + + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ServiceOrder" + } + }, + "headers": { + "X-Total-Count": { + "description": "", + "type": "integer", + "format": "int32" + }, + "X-Result-Count": { + "description": "", + "type": "integer", + "format": "int32" + } + } + + }, + "400": { + + "description": "Bad Request\n\nList of supported error codes:\n- 20: Invalid URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string parameter value", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "401": { + + "description": "Unauthorized\n\nList of supported error codes:\n- 40: Missing credentials\n- 41: Invalid credentials\n- 42: Expired credentials", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "403": { + + "description": "Forbidden\n\nList of supported error codes:\n- 50: Access denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many requests", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "404": { + + "description": "Not Found\n\nList of supported error codes:\n- 60: Resource not found", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "422": { + + "description": "Unprocessable entity\n\nFunctional error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "500": { + + "description": "Internal Server Error\n\nList of supported error codes:\n- 1: Internal error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "503": { + + "description": "Service Unavailable\n\nList of supported error codes:\n- 5: The service is temporarily unavailable\n- 6: Orange API is over capacity, retry later !", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + } + } + } + }, + "/serviceOrder/{id}": { + "get": { + "tags": [ + "ServiceOrder" + ], + "operationId": "serviceOrderGet", + "summary": "Retrieve a service order", + "description": "This operation retrieves a service order entity. \nAttribute selection is enabled for all first level attributes.\n\nSpecific business errors for current operation will be encapsulated in\n\nHTTP Response 422 Unprocessable entity\n", + "deprecated": false, + + "parameters": [ + + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "description": "" + }, + { + "name": "fields", + "required": false, + "in": "query", + "description": "Attribute selection", + + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ServiceOrder" + } + + }, + "400": { + + "description": "Bad Request\n\nList of supported error codes:\n- 20: Invalid URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string parameter value", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "401": { + + "description": "Unauthorized\n\nList of supported error codes:\n- 40: Missing credentials\n- 41: Invalid credentials\n- 42: Expired credentials", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "403": { + + "description": "Forbidden\n\nList of supported error codes:\n- 50: Access denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many requests", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "404": { + + "description": "Not Found\n\nList of supported error codes:\n- 60: Resource not found", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "422": { + + "description": "Unprocessable entity\n\nFunctional error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "500": { + + "description": "Internal Server Error\n\nList of supported error codes:\n- 1: Internal error", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + }, + "503": { + + "description": "Service Unavailable\n\nList of supported error codes:\n- 5: The service is temporarily unavailable\n- 6: Orange API is over capacity, retry later !", + "schema": { + + "$ref": "#/definitions/ErrorRepresentation" + } + } + } + } + } + }, +"definitions": { + + "ActionType": { + "description": "Action type to be describer on the order item.\nmodify is not managed in Beijing release", + + "type": "string", + "enum": [ + "add", + "modify", + "delete", + "noChange"] + + }, + "StateType": { + "description": "List of possible state for the order and the orderItem.", + + "type": "string", + "enum": [ + "acknowledged", + "rejected", + "pending", + "held", + "inProgress", + "cancelled", + "completed", + "failed", + "partial"] + + }, + "RelationshipType": { + "description": "Relationship type;\nOnly reliesOn is managed in Beijing release.", + + "type": "string", + "enum": [ + "reliesOn"] + + }, + + "ErrorRepresentation": { + "description": "Representation of an error.", + + + "required": [ + + "code", + "reason" + ], + "type": "object", + "properties": { + "code": { + "description": "Application related code (as defined in the API or from a common list)", + "type": "integer", + "format": "int32" + }, + "reason": { + "description": "Text that explains the reason for error. This can be shown to a client user.", + "type": "string" + }, + "message": { + "description": "Text that provide more details and corrective actions related to the error. This can be shown to a client user", + "type": "string" + }, + "status": { + "description": "http error code extension like 400-2", + "type": "string" + }, + "referenceError": { + "description": "url pointing to documentation describing the error", + "type": "string" + }, + "@type": { + "description": "The class type of a REST resource", + "type": "string" + }, + "@schemaLocation": { + "description": "it provides a link to the schema describing a REST resource", + "type": "string" + } + } + + }, + + "ServiceRelationship": { + "description": "Linked Services to the one instantiate\nnbi component used this relationship to sort request to ONAP.", + + + "required": [ + + "type", + "service" + ], + "type": "object", + "properties": { + "type": { + + "$ref": "#/definitions/RelationshipType" + }, + "service": { + + "$ref": "#/definitions/Service" + } + } + + }, + + "ServiceRef": { + "description": "Service references", + + + "required": [ + + "id" + ], + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the service", + "type": "string" + }, + "href": { + "description": "Reference of the service", + "type": "string" + } + } + + }, + + "ServiceCharacteristic": { + "description": "ServiceCharacteristic", + + + "required": [ + + "name" + ], + "type": "object", + "properties": { + "name": { + "description": "Name of characteristic", + "type": "string" + }, + "valueType": { + "description": "", + "type": "string" + }, + "value": { + + "$ref": "#/definitions/Value" + } + } + + }, + + "RelatedParty": { + "description": "A related party defines party which are involved in this order and the role they are playing.\nfor Beijing release:\nWith the current version of APIs used from SO and AAI we need to manage a ‘customer’. This customer concept is confusing with Customer BSS concept. We took the following rules to manage the ‘customer’ information:\no\tIt could be provided through a serviceOrder in the service Order a relatedParty with role ‘ONAPcustomer’ should be provided in the serviceOrder header (we will not consider in this release the party at item level); External API component will check if this customer exists and create it in AAI if not.\no\tIf no relatedParty are provided the service will be affected to ‘generic’ customer (dummy customer) – we assume this ‘generic’ customer always exists.", + + + "required": [ + + "id", + "role" + ], + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of a related party", + "type": "string" + }, + "href": { + "description": "An hyperlink to the party - not used in Beijnig release", + "type": "string" + }, + "role": { + "description": "The role of the related party (e.g. Owner, requester, fullfiller etc).\nONLY 'ONAPcustomer' is considered", + "type": "string" + }, + "name": { + "description": "Name of the related party", + "type": "string" + }, + "@referredType": { + "description": "", + "type": "string" + } + } + + }, + + "ServiceSpecificationRef": { + "description": "The service specification (these attributes are fetched from the catalogue).", + + + "required": [ + + "id" + ], + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the service specification\nThis information will be used to retrieve SDC information + mapped to SO ModelNameVersionIdin the request.", + "type": "string" + }, + "href": { + "description": "Reference of the service specification\nNot used in Beijing release.", + "type": "string" + }, + "name": { + "description": "Name of the service specification\nNot used in Beijing release", + "type": "string" + }, + "version": { + "description": "Version of the service Specification\nNot used in Beijing release", + "type": "string" + }, + "targetServiceSchema": { + + "$ref": "#/definitions/TargetServiceSchema" + }, + "@type": { + "description": "Not used in Beijing release", + "type": "string" + }, + "@schemaLocation": { + "description": "Not used in Beijing release", + "type": "string" + }, + "@baseType": { + "description": "Not used in Beijing release", + "type": "string" + } + } + + }, + + "Service": { + "description": "Service (to be added, modified, deleted) description", + + + "required": [ + + "id" + ], + "type": "object", + "properties": { + "id": { + "description": "Identifier of a service instance.\nIt must be valued if orderItem action is 'delete' and corresponds to a AAI service.id", + "type": "string" + }, + "href": { + "description": "Reference to the Service (useful for delete or modify command).\nNot managed in Beijing release.", + "type": "string" + }, + "name": { + "description": "Name of the service - When orderItem action is 'add' this name will be used in ONAP/SO request as InstaceName.", + "type": "string" + }, + "serviceState": { + "description": "The lifecycle state of the service requested;\nNot managed in Beijing release.", + "type": "string" + }, + "@type": { + "description": "To define the service type\nNot managed in Beijing Release", + "type": "string" + }, + "@schemaLocation": { + "description": "The URL to get the resource schema.\nNot managed in Beijing Release", + "type": "string" + }, + "serviceCharacteristic": { + + "type": "array", + "items": { + "$ref": "#/definitions/ServiceCharacteristic" + } + }, + "serviceRelationship": { + + "type": "array", + "items": { + "$ref": "#/definitions/ServiceRelationship" + } + }, + "relatedParty": { + + "type": "array", + "items": { + "$ref": "#/definitions/RelatedParty" + } + }, + "serviceSpecification": { + + "$ref": "#/definitions/ServiceSpecificationRef" + } + } + + }, + + "OrderItemRelationship": { + "description": "Linked order item to the one containing this attribute.\nnbi component used this relationship to sort request to ONAP.", + + + "required": [ + + "type", + "id" + ], + "type": "object", + "properties": { + "type": { + + "$ref": "#/definitions/RelationshipType" + }, + "id": { + "description": "Unique identifier of an order item", + "type": "string" + } + } + + }, + + "ServiceOrderItem": { + "description": "An identified part of the order. A service order is decomposed into one or more order items.", + + + "required": [ + + "id", + "service" + ], + "type": "object", + "properties": { + "id": { + "description": "Identifier of the line item (generally it is a sequence number 01, 02, 03, …)", + "type": "string" + }, + "action": { + + "$ref": "#/definitions/ActionType" + }, + "state": { + + "$ref": "#/definitions/StateType" + }, + "@type": { + "description": "Used to extend the order item.\nnot used in Beijing relase", + "type": "string" + }, + "@schemaLocation": { + "description": "not used in Beijing relase", + "type": "string" + }, + "@baseType": { + "description": "not used in Beijing relase", + "type": "string" + }, + "orderItemRelationship": { + + "type": "array", + "items": { + "$ref": "#/definitions/OrderItemRelationship" + } + }, + "service": { + + "$ref": "#/definitions/Service" + } + } + + }, + + "ServiceOrder": { + "description": "A Service Order is a type of order which can be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa", + + + "required": [ + + "id" + ], + "type": "object", + "properties": { + "id": { + "description": "ID created on repository side", + "type": "string" + }, + "href": { + "description": "Hyperlink to access the order", + "type": "string" + }, + "externalId": { + "description": "ID given by the consumer and only understandable by him (to facilitate his searches)", + "type": "string" + }, + "priority": { + "description": "A way that can be used by consumers to prioritize orders in Service Order Management system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)", + "type": "string" + }, + "description": { + "description": "A free-text description of the service order", + "type": "string" + }, + "category": { + "description": "Used to categorize the order that can be useful for the OM system (e.g. “broadband”, “TVOption”, ...)", + "type": "string" + }, + "state": { + + "$ref": "#/definitions/StateType" + }, + "orderDate": { + "description": "", + "type": "string", + "format": "date-time" + }, + "completionDateTime": { + "description": "Date when the order was completed", + "type": "string", + "format": "date-time" + }, + "requestedStartDate": { + "description": "Order start date wished by the requestor", + "type": "string", + "format": "date-time" + }, + "requestedCompletionDate": { + "description": "Requested delivery date from the requestor perspective", + "type": "string", + "format": "date-time" + }, + "expectedCompletionDate": { + "description": "", + "type": "string", + "format": "date-time" + }, + "startDate": { + "description": "Date when the order was started for processing", + "type": "string", + "format": "date-time" + }, + "@baseType": { + "description": "", + "type": "string" + }, + "@type": { + "description": "", + "type": "string" + }, + "@schemaLocation": { + "description": "", + "type": "string" + }, + "relatedParty": { + + "type": "array", + "items": { + "$ref": "#/definitions/RelatedParty" + } + }, + "orderRelationship": { + + "type": "array", + "items": { + "$ref": "#/definitions/OrderRelationship" + } + }, + "orderItem": { + + "type": "array", + "items": { + "$ref": "#/definitions/ServiceOrderItem" + } + } + } + + }, + + "OrderRelationship": { + "description": "Linked order to the one containing this attribute.\nThis relationship is not used to sort ONAP request.", + + + "required": [ + + "id" + ], + "type": "object", + "properties": { + "type": { + "description": "The type of related order, can be : “dependency” if the order needs to be “not started” until another order item is complete (a service order in this case) or “cross-ref” to keep track of the source order (a productOrder)", + "type": "string" + }, + "id": { + "description": "The id of the related order", + "type": "string" + }, + "href": { + "description": "A hyperlink to the related order", + "type": "string" + }, + "@referredType": { + "description": "Type of the referred order.", + "type": "string" + } + } + + }, + + "TargetServiceSchema": { + "description": "Target to the schema describing the service spec resource", + + + "required": [ + + "@type", + "@schemaLocation" + ], + "type": "object", + "properties": { + "@type": { + "description": "Indicates the (class) type of resource.", + "type": "string" + }, + "@schemaLocation": { + "description": "This field provided a link to the schema describing this REST resource.", + "type": "string" + } + } + + }, + + "Value": { + "description": "Value is a descriptive structure for service characteristic;\nFor Beijing we only manage 'basic' attribute - the serviceCharacteristicValue must be used.", + + + "type": "object", + "properties": { + "@type": { + "description": "Indicates the (class) type of resource.\nNot used in Beijing Release", + "type": "string" + }, + "@schemaLocation": { + "description": "This field provided a link to the schema describing this REST resource.\nNot used in Beijing Release", + "type": "string" + }, + "serviceCharacteristicValue": { + "description": "Value of the characteristic.\nThis attribute must be used in Beijing Release to provide characteristic value.", + "type": "string" + } + } + + }, + + "CreateServiceOrderItem": { + "description": "This structure is used in the operation POST for a serviceOrder request to describe an item.\nAttribute description is not accurate and should be find in the serviceOrderItem class.", + + + "required": [ + + "id", + "service" + ], + "type": "object", + "properties": { + "id": { + "description": "Identifier of the line item (generally it is a sequence number 01, 02, 03, …)", + "type": "string" + }, + "action": { + + "$ref": "#/definitions/ActionType" + }, + "@type": { + "description": "Indicates the type of resource.", + "type": "string" + }, + "@schemaLocation": { + "description": "A link to the schema describing this REST resource", + "type": "string" + }, + "@baseType": { + "description": "Indicates the base type of the resource.", + "type": "string" + }, + "orderItemRelationship": { + + "type": "array", + "items": { + "$ref": "#/definitions/OrderItemRelationship" + } + }, + "service": { + + "$ref": "#/definitions/Service" + } + } + + }, + + "CreateServiceOrder": { + "description": "This structure is used in the operation POST for a serviceOrder request.\nAttribute description is not accurate and should be find in the serviceOrder class.", + + + "type": "object", + "properties": { + "externalId": { + "description": "ID given by the consumer and only understandable by him (to facilitate his searches)", + "type": "string" + }, + "priority": { + "description": "A way that can be used by consumers to prioritize orders in Service Order Management system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)", + "type": "string" + }, + "description": { + "description": "A free-text description of the service order", + "type": "string" + }, + "category": { + "description": "Used to categorize the order that can be useful for the OM system (e.g. “broadband”, “TVOption”, ...)", + "type": "string" + }, + "requestedStartDate": { + "description": "Order start date wished by the requestor", + "type": "string", + "format": "date-time" + }, + "requestedCompletionDate": { + "description": "Requested delivery date from the requestor perspective", + "type": "string", + "format": "date-time" + }, + "@baseType": { + "description": "", + "type": "string" + }, + "@type": { + "description": "", + "type": "string" + }, + "@schemaLocation": { + "description": "", + "type": "string" + }, + "relatedParty": { + + "type": "array", + "items": { + "$ref": "#/definitions/RelatedParty" + } + }, + "orderRelationship": { + + "type": "array", + "items": { + "$ref": "#/definitions/OrderRelationship" + } + }, + "orderItem": { + + "type": "array", + "items": { + "$ref": "#/definitions/CreateServiceOrderItem" + } + } + } + + }, + + "Hub": { + "description": "An HUB resource is used by client side to subscribe to notification.\nNot managed in the Beijing release.", + + + "discriminator": "id", + + "required": [ + + "callback" + ], + "type": "object", + "properties": { + "id": { + "description": "", + "type": "string" + }, + "query": { + "description": "", + "type": "string" + }, + "callback": { + "description": "", + "type": "string" + } + } + + } + } +} + \ No newline at end of file diff --git a/docs/offeredapis/swaggers/serviceOrder_1_0_0.yaml b/docs/offeredapis/swaggers/serviceOrder_1_0_0.yaml new file mode 100644 index 0000000..9d26cd3 --- /dev/null +++ b/docs/offeredapis/swaggers/serviceOrder_1_0_0.yaml @@ -0,0 +1,768 @@ +swagger: "2.0" +info: + description: "serviceOrder API designed for ONAP Beijing Release.\nThis API is build\ + \ from TMF open API18.0 (applying TMF Guideline 3.0);\nOnly operations GET (by\ + \ id and list) and POST are available." + version: "1.0.0_inProgress" + title: "API ServiceOrder" + x-logo: + url: "/redoc/logo.png" + backgroundColor: "#FFFFFF" +host: "serverRoot" +basePath: "/nbi/api/v1" +schemes: +- "https" +consumes: +- "application/json;charset=utf-8" +produces: +- "application/json;charset=utf-8" +tags: +- name: "ServiceOrder" + description: "A Service Order is a type of order which can be used to describe a\ + \ group of operations on service – one service order item per service. An action\ + \ at the level of the service order item describe the operation to be done on\ + \ a service (add, terminate for example). The service order is triggered from\ + \ the BSS system in charge of the product order management to ONAP that will manage\ + \ the service fulfillment." +paths: + /serviceOrder: + post: + tags: + - "ServiceOrder" + operationId: "serviceOrderCreate" + summary: "Create a service order" + description: "This operation creates a service order entity.\nThe TMF Open API\ + \ specification document provides the list of mandatory and non mandatory\ + \ attributes when creating a ServiceOrder, including any possible rule conditions\ + \ and applicable default values.\nPOST should be used without specifying the\ + \ id and the href, the Service Order Management system is in charge of generating\ + \ the id + href for the ServiceOrder.\n\nSpecific business errors for current\ + \ operation will be encapsulated in\n\nHTTP Response 422 Unprocessable entity\n\ + \n - 100: OrderItem with 'add' action but serviceSpecification id missing\n\ + \ \n - 101: OrderItem with 'change'/'noChange'/'remove' but service id missing\n\ + \ \n - 102: OrderItem with 'add' action - serviceSpecification id provided\ + \ but not existing\n \n - 103: OrderItem with 'add' action but service id\ + \ already existing in the inventory\n \n - 104: A customer for existing\ + \ service(s) is provided but he did not exist\n \n - 105: OrderItem with\ + \ 'change'/'noChange'/'remove' - Service id provided but it is not existing\ + \ in the inventory\n \n - 106: [Not managed for current Relese] Issue with\ + \ lcpCloudRegionId and tenantId provided\n " + deprecated: false + parameters: + - name: "serviceOrder" + required: true + in: "body" + description: "" + schema: + $ref: "#/definitions/CreateServiceOrder" + responses: + 201: + description: "Success" + schema: + $ref: "#/definitions/CreateServiceOrder" + 400: + description: "Bad Request\n\nList of supported error codes:\n- 20: Invalid\ + \ URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing\ + \ body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid\ + \ header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string\ + \ parameter value" + schema: + $ref: "#/definitions/ErrorRepresentation" + 401: + description: "Unauthorized\n\nList of supported error codes:\n- 40: Missing\ + \ credentials\n- 41: Invalid credentials\n- 42: Expired credentials" + schema: + $ref: "#/definitions/ErrorRepresentation" + 403: + description: "Forbidden\n\nList of supported error codes:\n- 50: Access\ + \ denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many\ + \ requests" + schema: + $ref: "#/definitions/ErrorRepresentation" + 404: + description: "Not Found\n\nList of supported error codes:\n- 60: Resource\ + \ not found" + schema: + $ref: "#/definitions/ErrorRepresentation" + 422: + description: "Unprocessable entity\n\nFunctional error\n\nSpecific encapsulated\ + \ business errors for current operation\n\n - 100: OrderItem with 'add'\ + \ action but serviceSpecification id missing\n \n - 101: OrderItem with\ + \ 'change'/'noChange'/'remove' but service id missing\n \n - 102: OrderItem\ + \ with 'add' action - serviceSpecification id provided but not existing\n\ + \ \n - 103: OrderItem with 'add' action but service id already existing\ + \ in the inventory\n \n - 104: A customer for existing service(s) is\ + \ provided but he did not exist\n \n - 105: OrderItem with 'change'/'noChange'/'remove'\ + \ - Service id provided but it is not existing in the inventory\n \n\ + \ - 106: [Not managed for current Relese] Issue with lcpCloudRegionId\ + \ and tenantId provided\n " + schema: + $ref: "#/definitions/ErrorRepresentation" + 500: + description: "Internal Server Error\n\nList of supported error codes:\n\ + - 1: Internal error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 503: + description: "Service Unavailable\n\nList of supported error codes:\n- 5:\ + \ The service is temporarily unavailable\n- 6: Orange API is over capacity,\ + \ retry later !" + schema: + $ref: "#/definitions/ErrorRepresentation" + get: + tags: + - "ServiceOrder" + operationId: "serviceOrderFind" + summary: "List service orders" + description: "Retrieve and list service order entities according to given criteria.\n\ + Only a predefined set of attribute is proposed.\nAttribute selection could\ + \ be described in the fields attribute.\n\nSpecific business errors for current\ + \ operation will be encapsulated in\n\nHTTP Response 422 Unprocessable entity\n" + deprecated: false + parameters: + - name: "externalId" + required: false + in: "query" + description: "" + type: "string" + - name: "state" + required: false + in: "query" + description: "state of the order(s) to be retrieved" + type: "string" + - name: "description" + required: false + in: "query" + description: "" + type: "string" + - name: "orderDate.gt" + required: false + in: "query" + description: "order date greather than" + type: "string" + - name: "orderDate.lt" + required: false + in: "query" + description: "order date lower than" + type: "string" + - name: "fields" + required: false + in: "query" + description: "this attribute could be used to filter retrieved attribute(s)\ + \ and/or sort SO." + type: "string" + - name: "offset" + required: false + in: "query" + description: "The index of the first element to retrieve. Zero is the first\ + \ element of the collection." + type: "integer" + format: "int32" + - name: "limit" + required: false + in: "query" + description: "The maximum number of elements to retrieve (it can be greater\ + \ than the actual available number of items)." + type: "integer" + format: "int32" + responses: + 200: + description: "Success" + schema: + type: "array" + items: + $ref: "#/definitions/ServiceOrder" + headers: + X-Total-Count: + description: "" + type: "integer" + format: "int32" + X-Result-Count: + description: "" + type: "integer" + format: "int32" + 400: + description: "Bad Request\n\nList of supported error codes:\n- 20: Invalid\ + \ URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing\ + \ body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid\ + \ header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string\ + \ parameter value" + schema: + $ref: "#/definitions/ErrorRepresentation" + 401: + description: "Unauthorized\n\nList of supported error codes:\n- 40: Missing\ + \ credentials\n- 41: Invalid credentials\n- 42: Expired credentials" + schema: + $ref: "#/definitions/ErrorRepresentation" + 403: + description: "Forbidden\n\nList of supported error codes:\n- 50: Access\ + \ denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many\ + \ requests" + schema: + $ref: "#/definitions/ErrorRepresentation" + 404: + description: "Not Found\n\nList of supported error codes:\n- 60: Resource\ + \ not found" + schema: + $ref: "#/definitions/ErrorRepresentation" + 422: + description: "Unprocessable entity\n\nFunctional error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 500: + description: "Internal Server Error\n\nList of supported error codes:\n\ + - 1: Internal error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 503: + description: "Service Unavailable\n\nList of supported error codes:\n- 5:\ + \ The service is temporarily unavailable\n- 6: Orange API is over capacity,\ + \ retry later !" + schema: + $ref: "#/definitions/ErrorRepresentation" + /serviceOrder/{id}: + get: + tags: + - "ServiceOrder" + operationId: "serviceOrderGet" + summary: "Retrieve a service order" + description: "This operation retrieves a service order entity. \nAttribute selection\ + \ is enabled for all first level attributes.\n\nSpecific business errors for\ + \ current operation will be encapsulated in\n\nHTTP Response 422 Unprocessable\ + \ entity\n" + deprecated: false + parameters: + - name: "id" + in: "path" + required: true + type: "string" + description: "" + - name: "fields" + required: false + in: "query" + description: "Attribute selection" + type: "string" + responses: + 200: + description: "Success" + schema: + $ref: "#/definitions/ServiceOrder" + 400: + description: "Bad Request\n\nList of supported error codes:\n- 20: Invalid\ + \ URL parameter value\n- 21: Missing body\n- 22: Invalid body\n- 23: Missing\ + \ body field\n- 24: Invalid body field\n- 25: Missing header\n- 26: Invalid\ + \ header value\n- 27: Missing query-string parameter\n- 28: Invalid query-string\ + \ parameter value" + schema: + $ref: "#/definitions/ErrorRepresentation" + 401: + description: "Unauthorized\n\nList of supported error codes:\n- 40: Missing\ + \ credentials\n- 41: Invalid credentials\n- 42: Expired credentials" + schema: + $ref: "#/definitions/ErrorRepresentation" + 403: + description: "Forbidden\n\nList of supported error codes:\n- 50: Access\ + \ denied\n- 51: Forbidden requester\n- 52: Forbidden user\n- 53: Too many\ + \ requests" + schema: + $ref: "#/definitions/ErrorRepresentation" + 404: + description: "Not Found\n\nList of supported error codes:\n- 60: Resource\ + \ not found" + schema: + $ref: "#/definitions/ErrorRepresentation" + 422: + description: "Unprocessable entity\n\nFunctional error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 500: + description: "Internal Server Error\n\nList of supported error codes:\n\ + - 1: Internal error" + schema: + $ref: "#/definitions/ErrorRepresentation" + 503: + description: "Service Unavailable\n\nList of supported error codes:\n- 5:\ + \ The service is temporarily unavailable\n- 6: Orange API is over capacity,\ + \ retry later !" + schema: + $ref: "#/definitions/ErrorRepresentation" +definitions: + ActionType: + description: "Action type to be describer on the order item.\nmodify is not managed\ + \ in Beijing release" + type: "string" + enum: + - "add" + - "modify" + - "delete" + - "noChange" + StateType: + description: "List of possible state for the order and the orderItem." + type: "string" + enum: + - "acknowledged" + - "rejected" + - "pending" + - "held" + - "inProgress" + - "cancelled" + - "completed" + - "failed" + - "partial" + RelationshipType: + description: "Relationship type;\nOnly reliesOn is managed in Beijing release." + type: "string" + enum: + - "reliesOn" + ErrorRepresentation: + description: "Representation of an error." + required: + - "code" + - "reason" + type: "object" + properties: + code: + description: "Application related code (as defined in the API or from a common\ + \ list)" + type: "integer" + format: "int32" + reason: + description: "Text that explains the reason for error. This can be shown to\ + \ a client user." + type: "string" + message: + description: "Text that provide more details and corrective actions related\ + \ to the error. This can be shown to a client user" + type: "string" + status: + description: "http error code extension like 400-2" + type: "string" + referenceError: + description: "url pointing to documentation describing the error" + type: "string" + '@type': + description: "The class type of a REST resource" + type: "string" + '@schemaLocation': + description: "it provides a link to the schema describing a REST resource" + type: "string" + ServiceRelationship: + description: "Linked Services to the one instantiate\nnbi component used this\ + \ relationship to sort request to ONAP." + required: + - "type" + - "service" + type: "object" + properties: + type: + $ref: "#/definitions/RelationshipType" + service: + $ref: "#/definitions/Service" + ServiceRef: + description: "Service references" + required: + - "id" + type: "object" + properties: + id: + description: "Unique identifier of the service" + type: "string" + href: + description: "Reference of the service" + type: "string" + ServiceCharacteristic: + description: "ServiceCharacteristic" + required: + - "name" + type: "object" + properties: + name: + description: "Name of characteristic" + type: "string" + valueType: + description: "" + type: "string" + value: + $ref: "#/definitions/Value" + RelatedParty: + description: "A related party defines party which are involved in this order and\ + \ the role they are playing.\nfor Beijing release:\nWith the current version\ + \ of APIs used from SO and AAI we need to manage a ‘customer’. This customer\ + \ concept is confusing with Customer BSS concept. We took the following rules\ + \ to manage the ‘customer’ information:\no\tIt could be provided through a serviceOrder\ + \ in the service Order a relatedParty with role ‘ONAPcustomer’ should be provided\ + \ in the serviceOrder header (we will not consider in this release the party\ + \ at item level); External API component will check if this customer exists\ + \ and create it in AAI if not.\no\tIf no relatedParty are provided the service\ + \ will be affected to ‘generic’ customer (dummy customer) – we assume this ‘\ + generic’ customer always exists." + required: + - "id" + - "role" + type: "object" + properties: + id: + description: "Unique identifier of a related party" + type: "string" + href: + description: "An hyperlink to the party - not used in Beijnig release" + type: "string" + role: + description: "The role of the related party (e.g. Owner, requester, fullfiller\ + \ etc).\nONLY 'ONAPcustomer' is considered" + type: "string" + name: + description: "Name of the related party" + type: "string" + '@referredType': + description: "" + type: "string" + ServiceSpecificationRef: + description: "The service specification (these attributes are fetched from the\ + \ catalogue)." + required: + - "id" + type: "object" + properties: + id: + description: "Unique identifier of the service specification\nThis information\ + \ will be used to retrieve SDC information + mapped to SO ModelNameVersionIdin\ + \ the request." + type: "string" + href: + description: "Reference of the service specification\nNot used in Beijing\ + \ release." + type: "string" + name: + description: "Name of the service specification\nNot used in Beijing release" + type: "string" + version: + description: "Version of the service Specification\nNot used in Beijing release" + type: "string" + targetServiceSchema: + $ref: "#/definitions/TargetServiceSchema" + '@type': + description: "Not used in Beijing release" + type: "string" + '@schemaLocation': + description: "Not used in Beijing release" + type: "string" + '@baseType': + description: "Not used in Beijing release" + type: "string" + Service: + description: "Service (to be added, modified, deleted) description" + required: + - "id" + type: "object" + properties: + id: + description: "Identifier of a service instance.\nIt must be valued if orderItem\ + \ action is 'delete' and corresponds to a AAI service.id" + type: "string" + href: + description: "Reference to the Service (useful for delete or modify command).\n\ + Not managed in Beijing release." + type: "string" + name: + description: "Name of the service - When orderItem action is 'add' this name\ + \ will be used in ONAP/SO request as InstaceName." + type: "string" + serviceState: + description: "The lifecycle state of the service requested;\nNot managed in\ + \ Beijing release." + type: "string" + '@type': + description: "To define the service type\nNot managed in Beijing Release" + type: "string" + '@schemaLocation': + description: "The URL to get the resource schema.\nNot managed in Beijing\ + \ Release" + type: "string" + serviceCharacteristic: + type: "array" + items: + $ref: "#/definitions/ServiceCharacteristic" + serviceRelationship: + type: "array" + items: + $ref: "#/definitions/ServiceRelationship" + relatedParty: + type: "array" + items: + $ref: "#/definitions/RelatedParty" + serviceSpecification: + $ref: "#/definitions/ServiceSpecificationRef" + OrderItemRelationship: + description: "Linked order item to the one containing this attribute.\nnbi component\ + \ used this relationship to sort request to ONAP." + required: + - "type" + - "id" + type: "object" + properties: + type: + $ref: "#/definitions/RelationshipType" + id: + description: "Unique identifier of an order item" + type: "string" + ServiceOrderItem: + description: "An identified part of the order. A service order is decomposed into\ + \ one or more order items." + required: + - "id" + - "service" + type: "object" + properties: + id: + description: "Identifier of the line item (generally it is a sequence number\ + \ 01, 02, 03, …)" + type: "string" + action: + $ref: "#/definitions/ActionType" + state: + $ref: "#/definitions/StateType" + '@type': + description: "Used to extend the order item.\nnot used in Beijing relase" + type: "string" + '@schemaLocation': + description: "not used in Beijing relase" + type: "string" + '@baseType': + description: "not used in Beijing relase" + type: "string" + orderItemRelationship: + type: "array" + items: + $ref: "#/definitions/OrderItemRelationship" + service: + $ref: "#/definitions/Service" + ServiceOrder: + description: "A Service Order is a type of order which can be used to place an\ + \ order between a customer and a service provider or between a service provider\ + \ and a partner and vice versa" + required: + - "id" + type: "object" + properties: + id: + description: "ID created on repository side" + type: "string" + href: + description: "Hyperlink to access the order" + type: "string" + externalId: + description: "ID given by the consumer and only understandable by him (to\ + \ facilitate his searches)" + type: "string" + priority: + description: "A way that can be used by consumers to prioritize orders in\ + \ Service Order Management system (from 0 to 4 : 0 is the highest priority,\ + \ and 4 the lowest)" + type: "string" + description: + description: "A free-text description of the service order" + type: "string" + category: + description: "Used to categorize the order that can be useful for the OM system\ + \ (e.g. “broadband”, “TVOption”, ...)" + type: "string" + state: + $ref: "#/definitions/StateType" + orderDate: + description: "" + type: "string" + format: "date-time" + completionDateTime: + description: "Date when the order was completed" + type: "string" + format: "date-time" + requestedStartDate: + description: "Order start date wished by the requestor" + type: "string" + format: "date-time" + requestedCompletionDate: + description: "Requested delivery date from the requestor perspective" + type: "string" + format: "date-time" + expectedCompletionDate: + description: "" + type: "string" + format: "date-time" + startDate: + description: "Date when the order was started for processing" + type: "string" + format: "date-time" + '@baseType': + description: "" + type: "string" + '@type': + description: "" + type: "string" + '@schemaLocation': + description: "" + type: "string" + relatedParty: + type: "array" + items: + $ref: "#/definitions/RelatedParty" + orderRelationship: + type: "array" + items: + $ref: "#/definitions/OrderRelationship" + orderItem: + type: "array" + items: + $ref: "#/definitions/ServiceOrderItem" + OrderRelationship: + description: "Linked order to the one containing this attribute.\nThis relationship\ + \ is not used to sort ONAP request." + required: + - "id" + type: "object" + properties: + type: + description: "The type of related order, can be : “dependency” if the order\ + \ needs to be “not started” until another order item is complete (a service\ + \ order in this case) or “cross-ref” to keep track of the source order (a\ + \ productOrder)" + type: "string" + id: + description: "The id of the related order" + type: "string" + href: + description: "A hyperlink to the related order" + type: "string" + '@referredType': + description: "Type of the referred order." + type: "string" + TargetServiceSchema: + description: "Target to the schema describing the service spec resource" + required: + - "@type" + - "@schemaLocation" + type: "object" + properties: + '@type': + description: "Indicates the (class) type of resource." + type: "string" + '@schemaLocation': + description: "This field provided a link to the schema describing this REST\ + \ resource." + type: "string" + Value: + description: "Value is a descriptive structure for service characteristic;\nFor\ + \ Beijing we only manage 'basic' attribute - the serviceCharacteristicValue\ + \ must be used." + type: "object" + properties: + '@type': + description: "Indicates the (class) type of resource.\nNot used in Beijing\ + \ Release" + type: "string" + '@schemaLocation': + description: "This field provided a link to the schema describing this REST\ + \ resource.\nNot used in Beijing Release" + type: "string" + serviceCharacteristicValue: + description: "Value of the characteristic.\nThis attribute must be used in\ + \ Beijing Release to provide characteristic value." + type: "string" + CreateServiceOrderItem: + description: "This structure is used in the operation POST for a serviceOrder\ + \ request to describe an item.\nAttribute description is not accurate and should\ + \ be find in the serviceOrderItem class." + required: + - "id" + - "service" + type: "object" + properties: + id: + description: "Identifier of the line item (generally it is a sequence number\ + \ 01, 02, 03, …)" + type: "string" + action: + $ref: "#/definitions/ActionType" + '@type': + description: "Indicates the type of resource." + type: "string" + '@schemaLocation': + description: "A link to the schema describing this REST resource" + type: "string" + '@baseType': + description: "Indicates the base type of the resource." + type: "string" + orderItemRelationship: + type: "array" + items: + $ref: "#/definitions/OrderItemRelationship" + service: + $ref: "#/definitions/Service" + CreateServiceOrder: + description: "This structure is used in the operation POST for a serviceOrder\ + \ request.\nAttribute description is not accurate and should be find in the\ + \ serviceOrder class." + type: "object" + properties: + externalId: + description: "ID given by the consumer and only understandable by him (to\ + \ facilitate his searches)" + type: "string" + priority: + description: "A way that can be used by consumers to prioritize orders in\ + \ Service Order Management system (from 0 to 4 : 0 is the highest priority,\ + \ and 4 the lowest)" + type: "string" + description: + description: "A free-text description of the service order" + type: "string" + category: + description: "Used to categorize the order that can be useful for the OM system\ + \ (e.g. “broadband”, “TVOption”, ...)" + type: "string" + requestedStartDate: + description: "Order start date wished by the requestor" + type: "string" + format: "date-time" + requestedCompletionDate: + description: "Requested delivery date from the requestor perspective" + type: "string" + format: "date-time" + '@baseType': + description: "" + type: "string" + '@type': + description: "" + type: "string" + '@schemaLocation': + description: "" + type: "string" + relatedParty: + type: "array" + items: + $ref: "#/definitions/RelatedParty" + orderRelationship: + type: "array" + items: + $ref: "#/definitions/OrderRelationship" + orderItem: + type: "array" + items: + $ref: "#/definitions/CreateServiceOrderItem" + Hub: + description: "An HUB resource is used by client side to subscribe to notification.\n\ + Not managed in the Beijing release." + discriminator: "id" + required: + - "callback" + type: "object" + properties: + id: + description: "" + type: "string" + query: + description: "" + type: "string" + callback: + description: "" + type: "string" -- cgit 1.2.3-korg