////
This work is licensed under a Creative Commons Attribution 4.0 International License.
http://creativecommons.org/licenses/by/4.0
Copyright 2018 Orange
////

= 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 &amp; 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)

