You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

TM Forum APIs

 

The following APIs are provided:

 

-Trouble Ticket API                      
-Product Ordering API                  
-Usage Management API              
-Product Inventory API                
-Billing Management API              
-Performance Management API    
-Product Catalog API                     
-SLA Management API                  
-Customer Management API       
-Party Management API    
 
 

TROUBLE TICKET RESOURCE MODEL

Managed Entity and Task Resource Models

Example of the JSON representation of a ticket:

{
    "id": "1",
    "correlationId": "TT53482",
    "description": "Customer complaint over last invoice.",
    "severity": "Urgent",
    "type": "Bills, charges or payment",
    "creationDate": "2013-07-23T08:16:39.0Z",
    "targetResolutionDate": "2013-07-30T10:20:01.0Z",
    "status": "In Progress",
    "subStatus": "Held",
    "statusChangeReason": "Waiting for invoicing expert.",
    "statusChangeDate": "2013-07-28T08:55:12.0Z",
    "relatedParty": [
        {
            "href": "/customer/1234",
            "role": "Originator"
        },
        {
            "href": "/operator/1234",
            "role": "Owner"
        },
        {
            "href": "Roger Collins",
            "role": "Reviser"
        }
    ],
    "relatedObject": [
        {
            "involvement": "Disputed",
            "reference": "/invoice/1234"
        },
        {
            "involvement": "Adjusted",
            "reference": "/invoice/5678"
        }
    ],
    "note": [
        {
            "date": "2013-07-24T09:55:30.0Z",
            "author": "Arthur Evans",
            "text": "Already called the expert"
        },
        {
            "date": "2013-07-25T08:55:12.0Z",
            "author": "Arthur Evans",
            "text": "Informed the originator"
        }
    ]
}

GET /API/troubleTicket/{ID}}/?{fields=attributes}&{filtering expression}

This Uniform Contract operation is used to retrieve the representation of a ticket.

Note that collections can be retrieved via GET /API/troubleTicket/ with no {ID}

Filtering is allowed on all attributes. See example below.
Attribute selection is possible for all attributes. See example below.

REQUEST

GET /api/troubleTicket 

Accept: application/json

RESPONSE

200

Content-Type: application/json

 

[ 

{ 

    "id": "1", 

    "correlationId": "TT53482", 

    "description": "Customer complaint over last invoice.", 

    "severity": "Urgent", 

    "type": "Bills, charges or payment", 

    "creationDate": "2013-07-23T08:16:39.0Z", 

    "targetResolutionDate": "2013-07-30T10:20:01.0Z", 

    "status": "In Progress", 

    "subStatus": "Held", 

    "statusChangeReason": "Waiting for invoicing expert.", 

    "statusChangeDate": "2013-07-24T08:55:12.0Z", 

    "relatedParty": [ 

        { 

            "href": "/customer/1234", 

            "role": "Originator" 

        }, 

        { 

            "href": "/operator/1234", 

            "role": "Owner" 

        }, 

        { 

            "href": "Roger Collins", 

            "role": "Reviser" 

        } 

    ], 

    "relatedObject": [ 

        { 

            "involvement": "Disputed", 

            "reference": "/invoice/1234" 

        }, 

        { 

            "involvement": "Adjusted", 

            "reference": "/invoice/5678" 

        } 

    ], 

    "note": [ 

        { 

            "date": "2013-07-24T09:55:30.0Z", 

            "author": "Arthur Evans", 

            "text": "Already called the expert" 

        }, 

        { 

            "date": "2013-07-25T08:55:12.0Z", 

            "author": "Arthur Evans", 

            "text": "Informed the originator" 

        } 

    ] 

}, 

{ 

    "id": "2", 

    "correlationId": "", 

    "description": "Customer asks for information about upgrading products.", 

    "severity": "Low", 

    "type": "Products and Services", 

    "creationDate": "2013-07-25T08:16:00.0Z", 

    "targetResolutionDate": "2013-07-28T00:00:00.0Z", 

    "status": "", 

    "subStatus": "", 

    "statusChangeReason": "", 

    "statusChangeDate": "2013-07-25T08:16:00.0Z", 

    "resolutionDate": "", 

    "relatedParty": [ 

        { 

            "href": "/customer/4567", 

            "role": "Originator" 

        } 

    ], 

    "relatedObject": [ 

    ], 

    "note": [ 

    ] 

} 

] 

POST API/ticket

Description :

  • This Uniform Contract operation is used to create a ticket.
  • Resource represents a managed entity.
  • Mandatory attributes that must be provided when you create the ticket :

Description, severity, type

Behavior :

  • Returns HTTP/1.1 status code 201 if the request was successful.
  • Returns HTTP/1.1 status code 400 (Bad request) if content is invalid (missing required attributes, …).

 

Attribute name

Mandatory

Default

Rule

Id

N

 

Initialized by TT handler

correlationId

N

 

 

description

Y

 

 

severity

Y

 

 

type

Y

 

 

creationDate

N

Date of the day

Initialized by TT handler

targetResolutionDate

N

 

 

status

N

Created

Initialized by TT handler

subStatus

N

 

 

statusChangeReason

N

 

 

statusChangeDate

N

Date of the day

 

resolutionDate

N

 

 

relatedParty

N

 

 

relatedObject

N

 

 

Note

N

 

 

 

The requester should not provide an id – it is generated automatically by the TT handler. A correlationId can be provided, but is not mandatory.

Create a ticket only with mandatory attributes:

REQUEST

POST API/ troubleTicket

Content-type: application/json

 

{ 

    "description": "Customer complaint over last invoice.", 

    "severity": "Urgent", 

    "type": "Bills, charges or payment" 

} 

RESPONSE

201

Content-Type: application/json

{ 

    "id": "1", 

    "correlationId": "TT53482", 

    "description": "Customer complaint over last invoice.", 

    "severity": "Urgent", 

    "type": "Bills, charges or payment", 

    "creationDate": "2013-07-23T08:16:39.0Z", 

    "targetResolutionDate": "2013-07-30T10:20:01.0Z", 

    "status": "Created", 

    "subStatus": "", 

    "statusChangeReason": "", 

    "statusChangeDate": "2013-07-24T08:55:12.0Z", 

    "resolutionDate": "", 

    "relatedParty": [ 

    ], 

    "relatedObject": [ 

    ], 

    "note": [

    ] 

 

PRODUCT ORDER RESOURCE MODEL

Managed Entity and Task Resource Models

Example of the JSON representation of a product order:

{
  "id": "42",
  "href": "http://serverlocation:port/orderManagement/productOrder/42",
  "externalId": "NiceNameForTheConsumer_42",
  "priority": "1",
  "description": "A wonderful 42 order for brand new products",
  "category": "residential",
  "state": "InProgress",
  "orderDate": "2013-04-12T16:42:23-04:00",
  "completionDate": "2013-04-19T16:42:23-04:00",
  "requestedStartDate": "2013-04-12T16:42:23-04:00",
  "requestedCompletionDate": "2013-04-19T16:42:23-04:00",
  "expectedCompletionDate": "2013-04-19T16:42:23-04:00",
  "notificationContact": "[email protected]",
  "note": [
    {
      "text": "A free text detailing the note",
      "date": "2013-04-12T16:42:23-04:00",
      "author": "name"
    }
  ],
  "relatedParty": [
    {
      "role": "customer",
      "id": "345221",
      "href": "http://serverlocation:port/partyManagement/customer/345221",
      "name": "John Doe"
    },
    {
      "role": "partner",
      "id": "42",
      "href": "http://serverlocation:port/partyManagement/partner/42"
    },
    {
      "role": "seller",
      "id": "4563",
      "href": "http://serverlocation:port/partnerManagement/partner/4563"
    }
  ],
  "orderItem": [
    {
      "id": "1",
      "action": "add",
      "state": "Acknowledged",
      "billingAccount": [
        {
          "id": "123456",
          "href": "http://serverlocation:port/billingManagement/billingAccount/123456"
        }
      ],
      "appointment": "http://www.doodle.com/1WCV5647438",
      "productOffering": {
        "id": "42",
        "href": "http: //serverlocation: port/catalogManagement/productOffering/42"
      },
      "product": {
        "place": {
          "href": "http://map.google.com/.../1234112GDE",
          "role": "DeliveryPlace"
        },
        "productCharacteristic": [
          {
            "name": "Colour",
            "value": "White"
          },
          {
            "name": "Memory",
            "value": "16"
          }
        ]
      }
    },
    {
      "id": "2",
      "action": "modify",
      "state": "InProgress",
      "productOffering": {
        "id": "43",
        "href": "http: //serverlocation: port/catalogManagement/productOffering/43"
      },
      "product": {
        "id": "456",
        "href": "http: //serverlocation: port/inventoryManagement/product/456",
        "productCharacteristic": [
          {
            "name": "anotherCharacteristic",
            "value": "itsValue"
          }
        ],
        "relatedParty": [
          {
            "role": "user",
            "id": "5667443",
            "href": "http://serverlocation:port/partyManagement/user/5667443",
            "name": "Jimmy Doe"
          }
        ]
      }
    },
    {
      "id": "3",
      "action": "add",
      "state": "InProgress",
      "billingAccount": [
        {
          "id": "123456",
          "href": "http://serverlocation:port/billingManagement/billingAccount/123456"
        }
      ],
      "productOffering": {
        "id": "51",
        "href": "http: //serverlocation: port/catalogManagement/productOffering/51"
      },
      "product": {
        "id": "511",
        "href": "http: //serverlocation: port/inventoryManagement/product/456",
        "productCharacteristic": [
          {
            "name": "anotherCharacteristic",
            "value": "itsValue"
          }
        ],
        "productRelationship": [
          {
            "type": "reliesOn",
            "product": {
              "productCharacteristic": [
                {
                  "name": "MSISDN",
                  "value": "003467488299002"
                }
              ]
            }
          }
        ]
      }
    },
    {
      "id": "4",
      "action": "add",
      "state": "InProgress",
      "billingAccount": [
        {
          "id": "1789",
          "href": "http://serverlocation:port/billingManagement/billingAccount/1789"
        }
      ],
      "productOffering": {
        "id": "44",
        "href": "http://serverlocation:port/catalogManagement/productOffering/Bundle44",
        "bundledProductOffering": [
          {
            "id": " BundledPSTN444",
            "href": "http://serverlocation:port/catalogManagement/productOffering/BundledPSTN444"
          },
          {
            "id": " Bundled Mobile443",
            "href": "http://serverlocation:port/catalogManagement/productOffering/BundledMobile443"
          }
        ]
      },
      "product": {
        "productRelationship": [
          {
            "type": "bundled",
            "product": {
              "productCharacteristic": [
                {
                  "name": "PSTNNumber",
                  "value": "003427488299002"
                }
              ]
            }
          },
          {
            "type": "bundled",
            "product": {
              "productCharacteristic": [
                {
                  "name": "MobileNumber",
                  "value": "003464553000300"
                }
              ]
            }
          }
        ]
      }
    }
  ]
}

 

 

 

GET /orderManagement/productOrder/{ID} 

Note that collections can be retrieved via GET /orderManagement/productOrder with no {ID}

Description :

This operation is used to retrieve order information using the ID

Attribute selection is enabled on all first level attributes but not on inner classes.

Attribute selection may optionally be enabled on all attributes and inner classes.

Behavior :

·         Return status codes

o   200 OK - the request was successful  

o   404 Not found - the supplied ID does not match a known productOrder 

 

Use case : Get a specific order based on its ID

 

 

REQUEST

GET /orderManagement/productOrder/42

Accept: application/json 

RESPONSE

200

Content-Type: application/json

{
   "id":"42",
   "href":"http://serverlocation:port/orderManagement/productOrder/42",
   "externalId":"NiceNameForTheConsumer_42",
   "priority":"1",
   "description":"A wonderful 42 order for brand new products",
   "category":"residential",
   "state":"InProgress",
   "orderDate":"2013-04-12T16:42:23-04:00",
   "completionDate":"2013-04-19T16:42:23-04:00",
   "requestedStartDate":"2013-04-12T16:42:23-04:00",
   "requestedCompletionDate":"2013-04-19T16:42:23-04:00",
   "expectedCompletionDate":"2013-04-19T16:42:23-04:00",
   "notificationContact":"[email protected]",
   "note":[
      {
         "text":"A free text detailing the note",
         "date":"2013-04-12T16:42:23-04:00",
         "author":"name"
      }
   ],
   "relatedParty":[
      {
         "role":"customer",
         "id":"345221",
         "href":"http://serverlocation:port/partyManagement/customer/345221"
         "name":"John Doe"
      },
      {
         "role":"partner",
         "id":"42",
         "href":"http://serverlocation:port/partyManagement/partner/42"
      },
      {
         "role":"seller",
         "id":"4563",
         "href":"http://serverlocation:port/partnerManagement/partner/4563"
      }
   ],
   "orderItem":[
      {
         "id":"1",
         "action":"add",
         "state":"Acknowledged",
         "billingAccount":[{
               "id":"123456",
               "href":"http://serverlocation:port/billingManagement/billingAccount/123456"
         }],

         "appointment":"http://www.doodle.com/1WCV5647438",
         "productOffering":{
            "id":"42",
            "href":"http: //serverlocation: port/catalogManagement/productOffering/42"
         },
         "product":{
         "place":{
            "href":"http://map.google.com/.../1234112GDE",
            "role":"DeliveryPlace"
         },
            "productCharacteristic":[
               {
                  "name":"Colour",
                  "value":"White"
               },
               {
                  "name":"Memory",
                  "value":"16"
               }
            ]
         }
      },
      {
         "id":"2",
         "action":"modify",
         "state":"InProgress",
         "productOffering":{
            "id":"43",
            "href":"http: //serverlocation: port/catalogManagement/productOffering/43"
         },
         "product":{
            "id":"456",
            "href":"http: //serverlocation: port/inventoryManagement/product/456",
            "productCharacteristic":[
               {
                  "name":"anotherCharacteristic",
                  "value":"itsValue"
               }
            ],
            "relatedParty":[
               {
                  "role":"user",
                  "id":"5667443",
                  "href":"http://serverlocation:port/partyManagement/user/5667443"
                  "name":"Jimmy Doe"
               }
            ]
         }
      },
      {
         "id":"3",
         "action":"add",
         "state":"InProgress",
         "billingAccount":[{
               "id":"123456",
               "href":"http://serverlocation:port/billingManagement/billingAccount/123456"
         }],
         "productOffering":{
            "id":"51",
            "href":"http: //serverlocation: port/catalogManagement/productOffering/51"
         },
         "product":{
            "id":"511",
            "href":"http: //serverlocation: port/inventoryManagement/product/456",
            "productCharacteristic":[
               {
                  "name":"anotherCharacteristic",
                  "value":"itsValue"
               }
            ],
            "productRelationship":[
               {
                  "type":"reliesOn",
                  "product":{
                     "productCharacteristic":[
                        {
                           "name":"MSISDN",
                           "value":"003467488299002"
                        }
                     ]
                  }
               }
            ]
         }
      },
      {
         "id":"4",
         "action":"add",
         "state":"InProgress",
         "billingAccount":[{
               "id":"1789",
               "href":"http://serverlocation:port/billingManagement/billingAccount/1789"
         }],
         "productOffering":{
            "id":"44",
            "href":"http://serverlocation:port/catalogManagement/productOffering/Bundle44",
            "bundledProductOffering":[
               {
                     "id":" BundledPSTN444",
                     "href":"http://serverlocation:port/catalogManagement/productOffering/BundledPSTN444"                      },

               {
                     "id":" Bundled Mobile443",
                     "href":"http://serverlocation:port/catalogManagement/productOffering/BundledMobile443"                      }
            ]
         },
         "product":{
            "productRelationship":[
               {
                  "type":"bundled",
                  "product":{
                     "productCharacteristic":[
                        {
                           "name":"PSTNNumber",
                           "value":"003427488299002"
                        }
                     ]
                  }
               },
               {
                  "type":"bundled",
                  "product":{
                     "productCharacteristic":[
                        {
                           "name":"MobileNumber",
                           "value":"003464553000300"
                        }
                     ]
                  }
               }
            ]
         }
      }
   ]

 

POST orderManagement/productorder

Description:

This operation is used to create a new order.

The mandatory attributes for the creation are :

-       relatedParties.role and reference to identify at least the customer

-       at least one orderItem with :

  • an action
  • a productOffering

Behavior :

  • Return status codes
    • 201 Created - the request was successful
    • 400 Bad Request – error

REQUEST

POST /orderManagement/productOrder

Content-type: application/json

 

{   "note":[
      {
         "text":"A free text detailing the note"
      }
   ],
   "relatedParty":[
      {
         "role":"customer",
         "id":"345221",
         "href":"http://serverlocation:port/partyManagement/customer/345221",
         "name":"John Doe"
      },
      {
         "role":"seller",
         "id":"4563",
         "href":"http://serverlocation:port/partnerManagement/partner/4563"
      }
   ],
   "orderItem":[
      {
         "id":"1",
         "action":"add",
         "billingAccount":[{
               "id":"1789",
               "href":"http://serverlocation:port/billingManagement/billingAccount/1789"
         }],
         "productOffering":{
            "id":"42",
            "href":"http: //serverlocation: port/catalogManagement/productOffering/42"
         },
         "product":{
            "productCharacteristic":[
               {
                  "name":"Colour",
                  "value":"White"
               },
               {
                  "name":"Memory",
                  "value":"16"
               }
            ]
         }
      },
      {
         "id":"2",
         "action":"modify",
         "product":{
            "id":"456",
            "href":"http: //serverlocation: port/inventoryManagement/product/456",
            "relatedParty":[
               {
                  "role":"user",
                  "id":"5667443",
                  "href":"http://serverlocation:port/partyManagement/user/5667443",
                  "name":"Jimmy Doe"
               }
            ]
         }
      },
      {
         "id":"3",
         "action":"delete",
         "product":{
            "id":"456",
            "href":"http: //serverlocation: port/inventoryManagement/product/456"
         }
      }
   ]
}

RESPONSE

201

Content-Type: application/json

 

{
   "id":"42",
   "href":"http://serverlocation:port/orderManagement/productOrder/42",
   "priority":"4",
   "category":"uncategorized",
   "state":"Acknowledged",
   "orderDate":"2013-04-12T16:42:23-04:00",
   "expectedCompletionDate":"2013-04-19T16:42:23-04:00",   "note":[
      {
         "text":"A free text detailing the note"
      }
   ],
   "relatedParty":[
      {
         "role":"customer",
         "id":"345221",
         "href":"http://serverlocation:port/partyManagement/customer/345221"
         "name":"John Doe"
      },
      {
         "role":"seller",
         "id":"4563",
         "href":"http://serverlocation:port/partnerManagement/partner/4563"
      }
   ],
   "orderItem":[
      {
         "id":"1",
         "action":"add",
         "state":"Acknowledged",
         "billingAccount":[{
               "id":"1789",
               "href":"http://serverlocation:port/billingManagement/billingAccount/1789"
         }],
         "productOffering":{
            "id":"42",
            "href":"http: //serverlocation: port/catalogManagement/productOffering/42"
         },
         "product":{
            "productCharacteristic":[
               {
                  "name":"Colour",
                  "value":"White"
               },
               {
                  "name":"Memory",
                  "value":"16"
               }
            ]
         }
      },
      {
         "id":"2",
         "action":"modify",
         "state":"Acknowledged",
         "product":{
            "id":"456",
            "href":"http: //serverlocation: port/inventoryManagement/product/456",
            "relatedParty":[
               {
                  "role":"user",
                  "id":"5667443",
                  "href":"http://serverlocation:port/partyManagement/user/5667443",
                  "name":"Jimmy Doe"
               }
            ]
         }
      },
      {
         "id":"3",
         "action":"delete",
         "state":"Acknowledged",
         "product":{
            "id":"456",
            "href":"http: //serverlocation: port/inventoryManagement/product/456"
         }
      }
   ]
}

  • No labels