Open APIs

 View Only
Expand all | Collapse all

TMF 639: Resource inventory management API extension

  • 1.  TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 22, 2021 05:17
    Hi All,

    We need to provide APIs for Bulk number management. We wont work on individual numbers. APIs work on number block and does activation, de-activation, reservation etc for the number block. The TMF 639 works on individual numbers. Is there a way to extend this API to support resource blocks or number blocks or what is the TMF suggestion to implement our requirement?

    Many thanks,
    Kalpana

    ------------------------------
    Kalpana HV
    Colt Technology Services
    ------------------------------


  • 2.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 22, 2021 05:36
    There is a new Resource Reservation API in preparation, @Pierre Robitaille leads this API, and he will want to be aware of the requirements for TN management (presumably for MSISDNs, VoIPs, etc.).


    ------------------------------
    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: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 22, 2021 23:47
    Thank you @Jonathan Goldberg. For now, how can we achieve this​ requirement. Do we need to create custom REST API for our requirement or is there any other way to be aligned with TMF guidelines.

    Best regards,
    Kalpana

    ------------------------------
    Kalpana HV
    Colt Technology Services
    ------------------------------



  • 4.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 23, 2021 00:18
    You might be able to use this as a starting point:
    https://github.com/tmforum-apis/TMF639_ResourceInventory

    ------------------------------
    Richard Loo
    Telstra Corporation
    ------------------------------



  • 5.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 23, 2021 02:41
    Thank you @Richard Loo. I have seen this. This spec manages individual resources. Our requirement is to do CRUD on bulk numbers. The question I have is do we need to create custom REST API for bulk resources or is there any other way to be aligned with TMF guidelines.

    Best regards,
    Kalpana


    ------------------------------
    Kalpana HV
    Colt Technology Services
    ------------------------------



  • 6.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 23, 2021 03:53
    With further analysis, we are thinking of extending Resource Inventory Management API to have a derived "logical resource" as "resource/number-block" with required parameters like start range, end range etc. Is this acceptable?

    Thanks,
    Kalpana

    ------------------------------
    Kalpana HV
    Colt Technology Services
    ------------------------------



  • 7.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 23, 2021 05:00
    Hi Kalpana
    There is a Resource Pool API TMF685, that may give you what you are looking for, but as I wrote previously it would probably be better for you to wait for the new Resource Reservation API. Or, if you cannot wait, to reach out to Pierre to see if you can align your design with his proposal.

    ------------------------------
    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.
    ------------------------------



  • 8.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 23, 2021 07:17
    Thank you @Jonathan Goldberg. Resource pool API is not suitable for us and as per the thread "TMF639 vs TMF685" resource pool API specification is not yet matured. Will reach out​ to @Pierre Robitaille​​.

    @Pierre Robitaille,
    Could you please, let us know your thoughts on this post.​

    Best regards,
    Kalpana

    ------------------------------
    Kalpana HV
    Colt Technology Services
    ------------------------------



  • 9.  RE: TMF 639: Resource inventory management API extension

    Posted Feb 23, 2021 09:43
    Hi @Kalpana HV,
    you are on the right path thinking of extending the resource model. We have had discussions about this in the past and the ​proper wording for this concept is "ResourceCollection".

    Since a ResourceCollection is itself an extension of Resource, it can be used as the subject of a reservation which i believe is what you are trying to achieve.

    Here is  a very high-level diagram showing the concept of collection :

    Please let me know if this addresses your needs.
    Thanks

    ------------------------------
    Pierre Robitaille
    Videotron G.P.
    ------------------------------



  • 10.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 24, 2021 04:49
    Thank you @Pierre Robitaille. It helps. So, we would define "resourceCollection" object by extending "Resource" object of Resource Inventory Management API and would do CRUD on the resourceCollection. These CRUD operations on resourceCollection would be under the Resource Inventory Management API. Would that be OK?

    Best Regards,
    Kalpana

    ------------------------------
    Kalpana HV
    Colt Technology Services
    ------------------------------



  • 11.  RE: TMF 639: Resource inventory management API extension

    Posted Feb 24, 2021 08:58
    Given that ResourceCollection would be an extension of Resource, it then falls under the idea of polymorphism. So in theory you could use ResourceCollection in a polymorphic manner anywhere a Resource could be used. In that regards my opinion is that yes, the CRUD operations could be done under the Resource Inventory Management API.

    Thanks

    ------------------------------
    Pierre Robitaille
    Videotron G.P.
    ------------------------------



  • 12.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 24, 2021 23:49
    Many thanks @Pierre Robitaille for the response. It helps a lot :)

    Best​ regards,
    Kalpana​

    ------------------------------
    Kalpana HV
    Colt Technology Services
    ------------------------------



  • 13.  RE: TMF 639: Resource inventory management API extension

    Posted Feb 23, 2021 09:43
    Edited by Pierre Robitaille Feb 23, 2021 10:33
      |   view attached

    [duplucate reply removed]



  • 14.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 25, 2021 08:08

    Hey Folks,

    I'm not sure, but if I understood the proposal correctly, the response of the API could then look like this:

    [
        {
            "id": "1",
            "href": "http://inventory/tmf-api/resourceInventory/v4/resource/1",
            "name": "LR_1",
            "@type": "LogicalResource",
            "@baseType": "Resource",
            "resourceRelationship": [
                {
                    "relationshipType": "IsContainedIn", // Not sure if this is the correct and if we would need this.
                    "href": "http://inventory/tmf-api/resourceInventory/v4/resource/3",
                    "@type": "ResourceRelationship",
                    "@referredType": "ResourceCollection"
                }
            ]
        },
        {
            "id": "2",
            "href": "http://inventory/tmf-api/resourceInventory/v4/resource/2",
            "name": "LR_2",
            "@type": "LogicalResource",
            "@baseType": "Resource",
            "resourceRelationship": [
                {
                    "relationshipType": "IsContainedIn", // Not sure if this is the correct and if we would need this.
                    "href": "http://inventory/tmf-api/resourceInventory/v4/resource/3",
                    "@type": "ResourceRelationship",
                    "@referredType": "ResourceCollection"
                }
            ]
        },
        {
            "id": "3",
            "href": "http://inventory/tmf-api/resourceInventory/v4/resource/3",
            "name": "A ResourceCollection",
            "@type": "ResourceCollection",
            "@baseType": "Resource",
            "resourceRelationship": [
                {
                    "relationshipType": "HasCompoundResources",
                    "href": "http://inventory/tmf-api/resourceInventory/v4/resource/1",
                    "@type": "ResourceRelationship",
                    "@referredType": "LogicalResource"
                },
                {
                    "relationshipType": "HasCompoundResources",
                    "href": "http://inventory/tmf-api/resourceInventory/v4/resource/2",
                    "@type": "ResourceRelationship",
                    "@referredType": "LogicalResource"
                }
            ]
        }
    ]

    Is this going in the right direction?

    Cheers,

    Jan



    ------------------------------
    Jan Lemmermann
    OSS Lead Architect
    EWE TEL GmbH
    ------------------------------



  • 15.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 26, 2021 06:06
    Edited by Kalpana HV Feb 26, 2021 06:22
    Hi Jan,

    The resource model would be something like

    So the JSON representation would be
    Thanks,
    ------------------------------
    Kalpana HV
    Colt Technology Services
    ------------------------------



  • 16.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 26, 2021 07:39
    Your variant is definitely also possible. I just wonder if it makes sense to introduce resourceCollectionRef, resourceCollectionSpecification and so on as new attributes.
     
    According to SID a ResourceCollection is derived from Resource. So you inherit resourcecSpecification and the resourceRelationship array directly when you introduce a new REST resource in the API. So why not use these attributes instead of introducing new ones that end up doing the same thing, mapping relationships between resources.
     
    Until now, I always assumed that if you apply polymorphism to TMF OpenAPI, the same basic principles apply.
    Would be interesting to hear what others have to say about this.
    Cheers,
    Jan


    ------------------------------
    Jan Lemmermann
    OSS Lead Architect
    EWE TEL GmbH
    ------------------------------



  • 17.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Feb 28, 2021 00:58
    Hi @Jan Lemmermann and @Kalpana HV
    It seems that Jan is correct. In the Open API schema, we do derivation/inheritance using the allOf keyword, so it could be expected that the schema file ResourceCollection.Schema.json will include a statement such as:
     "allOf": [
    {
    "$ref": "../Resource/Resource.schema.json#Resource"
    }
    ]
    In fact our current tooling expands these allOf when generating the API swagger file, so that the swagger for ResourceCollection will simply have all the attributes from Resource directly.

    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.
    ------------------------------



  • 18.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Mar 04, 2021 06:35
    Edited by Kalpana HV Mar 05, 2021 04:23
    Apologies for the delayed response. Yes, understood and got the point... So, the resource model of resourceCollection would be
    and JSON representation will be
    {
    "id": "444",
    "href": "http://server:port/resourceInventoryManagement/resourceCollection/444",
    "startRange": "442083231170",
    "endRange": "442083231174",
    "quantity": "5",
    "@type": "resourceCollection",
    "@baseType": "resource",
    "lifecyleState": "Available",
    "resourceSpecification": {
    "id": "4",
    "href": " http://server:port/resourceCatalogManagement/resourceSpecification/4",
    "@type": "LogicalResourceSpecification"
    },
    "resourceCharacteristic": [
    {
    "name": "premiumValue",
    "value": "gold"
    }
    ],
    "relatedParty": [
    {
    "role": "Owner",
    "id": "42",
    "href": "http://serverlocation:port/PartyManagement/organisation/42"
    }
    ],
    "resourceCollectionRef": [
    {
    "id": "123",
    "href": "http://serverlocation:port/resourceInventoryManagement/resource/123",
    "value": "442083231170"
    },
    {
    "id": "124",
    "href": "http://serverlocation:port/resourceInventoryManagement/resource/124",
    "value": "442083231171"
    },
    {
    "id": "125",
    "href": "http://serverlocation:port/resourceInventoryManagement/resource/125",
    "value": "442083231172"
    },
    {
    "id": "126",
    "href": "http://serverlocation:port/resourceInventoryManagement/resource/126",
    "value": "442083231173"
    },
    {
    "id": "127",
    "href": "http://serverlocation:port/resourceInventoryManagement/resource/127",
    "value": "442083231174"
    }
    ]
    }

    ------------------------------
    Kalpana HV
    Colt Technology Services
    ------------------------------



  • 19.  RE: TMF 639: Resource inventory management API extension

    TM Forum Member
    Posted Mar 17, 2021 04:45

    Hi Kalpana,

    the point is , that the TMF639 Resource Inventory API is based on an abstract resource Model by @type=resource
    and for your use case you need a specialization of a resource = resourceCollection by @type=resourceCollection.
    The TMF639 API can be used for different resources: (resourceCollection,MSISDN, Port,...) and all resources can be linked by the resourceRelationship element.

    So, you can use the same model definition for diffrent resource types. using the polymophic pattern of TMF described into the guideline TMF630.
    (by @type= , @baseType  ,... . )

    ​​
    ​​

    ------------------------------
    Thomas Braun
    Deutsche Telekom AG
    ------------------------------