Open APIs

 View Only
  • 1.  TMF637 and TMF639 get product and CPE

    Posted Mar 16, 2020 08:53
    Hello TMForum,

    I'm working on an API layer that would be first useful from customer self care perspective.
    In order to retrieve customer products, e.g: Internet Subscription product, and Digital TV subscription product, I'd use TMF637:
    GET / product?billingAccount.id=123 
    to receive something like this:

    [{  "id": "456",
          "billingAccount": { "id": "123"},
          "isCustomerVisible":true,     
          "productSpecification": {"id": "TV product 1"}
       },
       { "id": "789",
          "billingAccount": {"id": "123"},
          "isCustomerVisible":true,
          "productSpecification": {"id": "Internet product 1"}
        },
        ...]

    For retreiving customer premises equipment I was thinking about TMF639, but I'm not sure how to include relation of equipment to product, e.g.: Internet product requires a Home Gateway, Digital TV product requires a SetTopBox. 
     
    One option (option a) that I see is to use relationship of product to list of realizingResource, so this part of product object from TMF637 19.0 Swagger:
    "realizingResource": {
        "type": "array",
        "items": {"$ref": "#/definitions/ResourceRef"} },
    But when looking at TMF637 definition I do not see reference from PhysicalResource to Product.

    On the other hand it seems that the way to do it (option b) would be to navigate though a hierarachy (like in the Order Management concept):
    Product -> Realizing Service (CFS) -> Realizing Service (RFS) -> Physical Resource 

    Should I assume that navigation directly from Product->Realizing resource is for material products (like "I Phone X - 128 GB, color white") and the option b, navigation through CFS and RFS is for subscription prodcuts?

    I'd like also to query PhysicalResources by BillingAccount, but I do not see such option - there is link to relatedParty.
    Is it planned to add billingAccount to Resource/PhysicalResource?

    Cheers,
    Bartosz

    ------------------------------
    Bartosz Kluzek
    UPC Poland
    Liberty Global Services B.V.
    ------------------------------


  • 2.  RE: TMF637 and TMF639 get product and CPE

    TM Forum Member
    Posted Mar 17, 2020 03:14
    Hi Bartosz

    For customer (self-)care I'm not sure why you would need to go to the resource layer at all.

    In my opinion, the product inventory should contain everything that an end-customer or care agent needs to know. So the devices that the customer holds would be modeled in the product catalog as offerings and specifications, with prices.
    At ordering time, the device would be instantiated as a Product, and if there was a specific price (rental, purchase), the ProductPrice would be instantiated as well and connected to the paying BillingAccount.

    For consumer devices that the customer has on-prem I am not even sure that we would want to connect them to PhysicalResource, this just seems to me to be an unnecessary duplication and overhead. It would be important to model as resources stuff that really impacts the network, such as a mobile SIM, or a STB card, or similar.

    Interesting to see what @Ludovic Robert has to say about this.

    Hope it helps​

    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
    ------------------------------



  • 3.  RE: TMF637 and TMF639 get product and CPE

    Posted Mar 23, 2020 10:09
    Hey Jonathan,

    Many thanks  for your quick reply. 
    I was stuck with this assumption that Product would not represent an equipment, but it makes sense as it relates to customer persepective.
    I'll use polymorphism to distinguish between subscription products and products that represent CPE - I'll need to add a few new attributes to the latter.

    When looking at the ProductCatalog definition I was a bit suprised that category  attribute is available for the ProductOffering and not for ProductSpecification.
    I thought that logical grouping of products (e.g.: Internet products, VoIP products, TV products) does make sense irrespective of the pricing, which is set for the offering.
    Is there any other philosophy behind the ProductOffering.Category attribute?

    Cheers,
    Bartosz


     



    ------------------------------
    Bartosz Kluzek
    Liberty Global Services B.V.
    ------------------------------



  • 4.  RE: TMF637 and TMF639 get product and CPE

    Posted Apr 03, 2020 06:52
    Hey @Jonathan Goldberg

    Thank for the response about modelling of equipment for customer selfcare. I've got two more questions, one in the post just above about the productSpecification and Category and .. another quite general. 

    Following the TMF910_Self_Care_API_Component_Suite_R18.0.1 I was expecting to query for product listing by billingAccount like this:
    GET / product?billingAccount.id=123

    But when looking at the Swagger definition for Product Management 19.0 it seems that it not possible to specify such query parameter. 
    I'd expect somthing like this:
    "paths": {
           "/product": {
                  "get": {
                       "operationId": "listProduct",
                       "summary": "List or find Product objects",
                       "description": "This operation list or find Product entities",
                              "tags": [
                                    "product"
                                          ],
                             "parameters": [
                                    {
                                          "name": "billingAccount.id",
                                          "description": "Query parameter selecting products for given billingAccount",
                                          "required": false,
                                          "in": "query",
                                          "type": "string"
                                     },

    Is it ok to extend the Swagger in such way bolded part?

    Cheers,
    Bartosz




    ​​

    ------------------------------
    Bartosz Kluzek
    Liberty Global Services B.V.
    ------------------------------