You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
Version 1
Next »
For every single of operation on the entities use the following templates and provide sample REST requests and responses.
Remember that the following Uniform Contract rules must be used :
Operation on Entities |
Uniform API Operation |
Description |
Query Entities |
GET Resource |
GET must be used to retrieve a representation of a resource. |
Create Entity |
POST Resource |
POST must be used to create a new resource |
Partial Update of an Entity |
PATCH Resource |
PATCH must be used to partially update a resource
For reconciliation processes |
Complete Update of an Entity |
PUT Resource |
PUT must be used to completely update a resource identified by its resource URI |
Remove an Entity |
DELETE Resource |
DELETE must be used to remove a resource |
Filtering and attribute selection rules are described in the TMF REST Design Guidelines.
Notifications are also described in a subsequent section.
GET /inventoryApi/product/{ID}
This Uniform Contract operation is used to retrieve the representation of a product inventory.
Note that collections can be retrieved via GET /inventoryApi/product with no {ID}
Description :
- Allows to retrieve product inventory content
- Filtering is enabled on all attributes and field selection also
- The resource is a managed entity.
- The identifier is an hyperlink
Behavior :
- Returns HTTP/1.1 status code 200 if the request was successful.
Case : Querying the product inventory to retrieve an overview of all the top level products for a given customer
REQUEST |
GET /inventoryApi/product/?relatedParties.role=customer&relatedParties.reference=42&isTopLevel=true&fields=name, description, status
Accept: application/json |
RESPONSE |
200
Content-Type: application/json
[{
"id": "42",
"href": "http://server:port/inventoryApi/product/42",
"name": "Broadband",
"description": "Description of the instantiated broadband product",
"status": "active"
}, {
"id": "55",
"href": "http://server:port/inventoryApi/product/55",
"name": "Mobile data access",
"description": "Description of the instantiated broadband product",
"status": "active"
}] |
PUT inventoryApi/product/{ID}
This Uniform Contract operation is used to completely update the representation of a product.
Description :
- Replaces a product entry inside the inventory
- The resource is a managed entity
Behavior :
- Returns HTTP/1.1 status code 201 if the request was successful.
- Standard error codes in case of errors.
REQUEST |
PUT inventoryApi/product/42
Content-type: application/json
{
"id": "42",
"href": "http://server:port/inventoryApi/product/42",
"name": "Broadband",
"description": "Description of the instantiated broadband product",
"status": "active",
"startDate": "2013-07-21 08:16:39ZGMT+1",
"orderDate": "2013-07-21 06:16:39ZGMT+1",
"terminationDate": "",
"productOffering":
{
"id" : "4",
"href": "http://server:port/catalogApi/productOffering/4",
"name": "My Quick BB Offer"
},
"productSpecification":
{
"id": " http://server:port/catalogApi/productOffering/4"
},
"productCharacteristics":[
{
"name":"speed",
"value":"16M"
}],
"productRelationships":[
{
"type":"contains",
"product":{
"id":" http://server:port/inventoryApi/product/59"
}
}],
"billingAccount":
{
"id": "http://server:port/billingApi/billingAccount/678"
},
"relatedParties": [
{
"role":"partner",
"reference":"http://serverlocation:port/partnerManagement/partner/42"
}],
"realizingServices": [
{
"id": " 46779",
"href": "http://server:port/inventoryApi/service/46779"
}],
"productPrice" : [{
"name" : "…",
"description" : "",
"validFor":{
"startDateTime":"2013-04-19T16:42:23-04:00",
"endDateTime":"2013-06-19T00:00:00-04:00"
},
"priceType":"recurring",
"recurringChargePeriod":"monthly",
"unitOfMeasure":"",
"price":{
"amount":"12",
"currency":"$"
}
}]
} |
RESPONSE |
201
Content-Type: application/json
{ JSON Resource Representation with every attributes
} |
PATCH inventoryAPI/product/{ID}
Description :
- Partially updates a product entry in the inventory
- The resource is a managed entity
Behavior :
- Returns HTTP/1.1 status code 201 if the request was successful.
- Standard error codes in case of an error.
Case : Patch the product inventory entry once the service delivery is fully done, thus linking the service ID to the product instance
REQUEST |
PATCH inventoryApi/product/42
Content-type: application/json
{
"realizingServices": [
{
"id": "http://server:port/inventoryApi/service/46779"
}]
} |
RESPONSE |
201
Content-Type: application/json
{ JSON Resource Representation with every attributes
} |
POST inventoryAPI/product
Description :
- Allows to create a new product entry in the inventory
- The resource is a managed entity
Behavior :
- Returns HTTP/1.1 status code 201 if the request was successful.
- Standard error codes in case of an error.
REQUEST |
POST inventoryApi/product
Content-type: application/json
{
"name": "Samsung Galaxy S4",
"description": "Description of the instantiated handset product",
"status": "active",
"productSerialNumber": "59745034OOR030",
"startDate": "",
"orderDate": "2013-07-21 06:16:39ZGMT+1",
"terminationDate": ""
"productOffering":
{
"id": "http://server:port/catalogApi/productOffering/22",
"name": "My Quick BB Offer"
},
"productSpecification":
{
"id": " http://server:port/catalogApi/productOffering/21"
},
"productCharacteristics":[
{
"name":"color",
"value":"black"
}]
"billingAccount":
{
"id": "http://server:port/billingApi/billingAccount/678"
},
"relatedParties": [
{
"role":"partner",
"reference":"http://serverlocation:port/partnerManagement/partner/42"
}],
"place":"http://map.google.com/.../1234112GDE",
"realizingResources": [
{
"id": " http://server:port/inventoryApi/device/659394EDOD0O"
}],
"productPrice" : [{
"name" : "…",
"description" : "",
"validFor":{
"startDateTime":"2013-04-19T16:42:23-04:00",
"endDateTime":"2013-06-19T00:00:00-04:00"
},
"priceType":"non-recurring",
"price":{
"amount":"300",
"currency":"$"
}
}]
} |
RESPONSE |
201
Content-Type: application/json
{ JSON Resource Representation with every provided and default attributes
} |
DELETE inventoryApi/product/{ID}
Description :
- Delete a product in the inventory
Behavior :
- Returns HTTP/1.1 status code 200 if the request was successful.
- Standard error codes in case of an error.
- Under certain policies, some errors may be raised when using this operation (for example if integrity violations are forbidden in the inventory).
REQUEST |
DELETE inventoryApi/product/42 |
RESPONSE |
200 |