TMF639 Resource Inventory Userguide v5.0.0
TMF639 Resource Inventory Userguide v5.0.0
Resource Inventory
Management
TMF639
NOTICE
Copyright © TM Forum 2024. All Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative
works that comment on or otherwise explain it or assist in its implementation may be
prepared, copied, published, and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this section are included on all such
copies and derivative works. However, this document itself may not be modified in any way,
including by removing the copyright notice or references to TM FORUM, except as needed
for the purpose of developing any document or deliverable produced by a TM FORUM
Collaboration Project Team (in which case the rules applicable to copyrights, as set forth in
the TM FORUM IPR Policy, must be followed) or as required to translate it into languages
other than English.
The limited permissions granted above are perpetual and will not be revoked by TM FORUM
or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and TM
FORUM DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL
NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Table of Contents
NOTICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Sample Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Support of polymorphism and extension patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
RESOURCE MODEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Managed Entity and Task Resource Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Resource resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
LogicalResource resource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
PhysicalResource resource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
ResourceCollection resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Notification Resource Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
API OPERATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Operations on Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
List or find Resource objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Retrieves a Resource by ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Creates a Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Updates partially a Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Deletes a Resource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
API NOTIFICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Register listener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Unregister listener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Publish Event to listener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Release History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Contributors to Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Introduction
The following document is the user guide of the REST API for Any management. It includes
the model definition as well as all available operations.
Generic support of polymorphism and pattern extensions is described in the TMF API
Guidelines, Part 2 (TMF630).
The @type attribute provides a way to represent the actual class type of an entity. For
example, within a list of Account instances some may be instances of BillingAccount where
other could be instances of SettlementAccount. The @type gives this information. All
resources and sub-resources of this API have a @type attributes that can be provided when
this is useful.
The @referredType can be used within reference entities (like for instance an AccountRef
object) to explicitly denote the actual entity type of the referred class. Notice that in reference
entities the @type, when used, denotes the class type of the reference itself, such as
BillingAccountRef or SettlementAccountRef, and not the class type of the referred object.
However since reference classes are rarely sub-classed, @type is generally not useful in
reference objects.
The @baseType attribute gives a way to provide explicitly the base of class of a given
resource that has been extended.
RESOURCE MODEL
Managed Entity and Task Resource Models
Resource resource
Resource is an abstract entity that describes the common set of attributes shared by all
concrete resources (e.g. TPE, EQUIPMENT) in the inventory.
Resource model
ResourceCollection
activationFeature : Feature [0..*]
administrativeState : ResourceAdministrativeStateType
attachment : AttachmentRef [0..*]
category : String
containedResource : ResourceRefOrValue [0..*]
description : String
endOperatingDate : DateTime
externalIdentifier : ExternalIdentifier [0..*]
href : String
ResourceSpecificationRef id : String
IntentRef Note
ExternalIdentifier intent : IntentRef
href : String
href : String author : String name : String
externalIdentifierType : String id : String (1)
id : String (1) date : DateTime note : Note [0..*]
id : String (1) name : String
name : String id : String operationalState : ResourceOperationalStateType
owner : String version : String
@baseType : String text : String place : RelatedPlaceRef [0..*]
@baseType : String @baseType : String
@referredType : String @baseType : String relatedParty : RelatedPartyRefOrPartyRoleRef [0..*]
@schemaLocation : String @referredType : String
@schemaLocation : String @schemaLocation : String resourceCharacteristic : Characteristic [0..*]
@type : String (1) @schemaLocation : String
@type : String (1) @type : String (1) resourceOrderItem : RelatedResourceOrderItem [0..*]
@type : String (1)
0..* resourceRelationship : ResourceRelationship [0..*]
0..1 0..* resourceSpecification : ResourceSpecificationRef
0..1
resourceStatus : ResourceStatusType
resourceVersion : String
startOperatingDate : DateTime
supportingResource : ResourceRefOrValue [0..*]
usageState : ResourceUsageStateType
validFor : TimePeriod
@baseType : String
@schemaLocation : String
@type = ResourceCollection
PhysicalResource
LogicalResource activationFeature : Feature [0..*]
administrativeState : ResourceAdministrativeStateType
activationFeature : Feature [0..*]
attachment : AttachmentRef [0..*]
administrativeState : ResourceAdministrativeStateType
category : String
attachment : AttachmentRef [0..*] Resource description : String
category : String
administrativeState : ResourceAdministrativeStateType endOperatingDate : DateTime
description : String
category : String externalIdentifier : ExternalIdentifier [0..*]
endOperatingDate : DateTime
description : String href : String
externalIdentifier : ExternalIdentifier [0..*]
endOperatingDate : DateTime id : String
href : String
«Enumeration» href : String intent : IntentRef
ResourceStatusType id : String
id : String manufactureDate : DateTime
intent : IntentRef
name : String name : String
installed name : String
operationalState : ResourceOperationalStateType note : Note [0..*]
pendingRemoval «Enumeration» «Enumeration» note : Note [0..*]
«Enumeration» resourceStatus : ResourceStatusType operationalState : ResourceOperationalStateType
standby ResourceAdministrativeStateType ResourceUsageStateType operationalState : ResourceOperationalStateType
ResourceOperationalStateType resourceVersion : String place : RelatedPlaceRef [0..*]
reserved place : RelatedPlaceRef [0..*]
locked idle startOperatingDate : DateTime powerState : String
alarm enable relatedParty : RelatedPartyRefOrPartyRoleRef [0..*]
unlocked busy usageState : ResourceUsageStateType relatedParty : RelatedPartyRefOrPartyRoleRef [0..*]
available disable resourceCharacteristic : Characteristic [0..*]
shutdown active validFor : TimePeriod resourceCharacteristic : Characteristic [0..*]
not exists resourceOrderItem : RelatedResourceOrderItem [0..*]
@baseType : String resourceOrderItem : RelatedResourceOrderItem [0..*]
planned resourceRelationship : ResourceRelationship [0..*]
@schemaLocation : String resourceRelationship : ResourceRelationship [0..*]
suspended resourceSpecification : ResourceSpecificationRef
@type = Resource resourceSpecification : ResourceSpecificationRef
unknown resourceStatus : ResourceStatusType
resourceStatus : ResourceStatusType
resourceVersion : String discriminator: resourceVersion : String
startOperatingDate : DateTime Resource serialNumber : String
supportingResource : ResourceRefOrValue [0..*] PhysicalResource startOperatingDate : DateTime
usageState : ResourceUsageStateType LogicalResource supportingResource : ResourceRefOrValue [0..*]
validFor : TimePeriod ResourceCollection usageState : ResourceUsageStateType
value : String
validFor : TimePeriod
@baseType : String
versionNumber : String
@schemaLocation : String
@baseType : String
@type = LogicalResource
@schemaLocation : String
@type = PhysicalResource
PartyRoleRef
PartyRef
href : String
id : String (1) href : String
name : String id : String (1)
partyId : String name : String
partyName : String @baseType : String
@baseType : String @referredType : String
@referredType : String @schemaLocation : String
@schemaLocation : String @type = PartyRef
@type = PartyRoleRef
Color Description
Resource (entry point)
Sub-resource
Sub-resource (reference entity)
Sub-resource with details in separate diagram
Enumeration
(1) : Mandatory property
Figure 1 - Resource
[.] | .//
Figure 2 - Resource
Field descriptions
Resource fields
administrativeState A ResourceAdministrativeStateType.
ResourceAdministrativeStateType enumerations; values defined
by ITU X.731: 'locked': The resource is administratively
prohibited from performing services for its users; 'shutdown': Use
of the resource is administratively permitted to existing instances
of use only. While the system remains in the shutting down state
the manager may at any time cause the managed object to
revert to the unlocked state; 'unlocked': The resource is
administratively permitted to perform services for its users. This
is independent of its inherent operability. ENUMERATED with
values:
* locked
* unlocked
* shutdown
attachment An AttachmentRef. Attachment reference. An attachment
complements the description of an element (for instance a
product) through video, pictures.
category A String. Category of the concrete resource. e.g Gold, Silver for
MSISDN concrete resource.
description A String. Free-text description of the resource.
endOperatingDate A DateTime. A date time( DateTime). The date till the resource is
operating.
externalIdentifier An ExternalIdentifier. An identification of an entity that is owned
by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
href A String. Hyperlink reference.
id A String. Unique identifier.
intent An IntentRef. Intent reference, for when Intent is used by other
entities.
name A String. The name of the resource.
note A Note. Extra information about a given entity.
operationalState A ResourceOperationalStateType.
ResourceOperationalStateType enumerations; values defined by
ITU X.731: 'disable': The resource is totally inoperable and
unable to provide service to the user(s); 'enable': The resource is
partially or fully operable and available for use. ENUMERATED
with values:
* enable
* disable
versionNumber A String. This is a string that identifies the version of this physical
resource. This is an optional attribute.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
administrativeState A ResourceAdministrativeStateType.
ResourceAdministrativeStateType enumerations; values defined
by ITU X.731: 'locked': The resource is administratively
prohibited from performing services for its users; 'shutdown': Use
of the resource is administratively permitted to existing instances
of use only. While the system remains in the shutting down state
the manager may at any time cause the managed object to
revert to the unlocked state; 'unlocked': The resource is
administratively permitted to perform services for its users. This
is independent of its inherent operability. ENUMERATED with
values:
* locked
* unlocked
* shutdown
attachment An AttachmentRef. Attachment reference. An attachment
complements the description of an element (for instance a
product) through video, pictures.
category A String. Category of the concrete resource. e.g Gold, Silver for
MSISDN concrete resource.
containedResource A ResourceRefOrValue. The polymorphic attributes @type,
@schemaLocation & @referredType are related to the Resource
entity and not the ResourceRefOrValue class itself.
description A String. Free-text description of the resource.
endOperatingDate A DateTime. A date time( DateTime). The date till the resource is
operating.
externalIdentifier An ExternalIdentifier. An identification of an entity that is owned
by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
href A String. Hyperlink reference.
id A String. Unique identifier.
intent An IntentRef. Intent reference, for when Intent is used by other
entities.
name A String. The name of the resource.
note A Note. Extra information about a given entity.
operationalState A ResourceOperationalStateType.
ResourceOperationalStateType enumerations; values defined by
ITU X.731: 'disable': The resource is totally inoperable and
unable to provide service to the user(s); 'enable': The resource is
partially or fully operable and available for use. ENUMERATED
with values:
* enable
* disable
place A RelatedPlaceRef. Entity reference. The polymorphic attributes
@type, @schemaLocation & @referredType are related to the
RelatedPlace entity and not the RelatedPlaceRef class itself.
relatedParty A RelatedPartyRefOrPartyRoleRef. RelatedParty reference. A
related party defines party or party role or its reference, linked to
a specific entity.
resourceCharacteristic A Characteristic. Describes a given characteristic of an object or
entity through a name/value pair. This is an abstract base class,
the actual value is in one of the strongly-typed subclasses :
StringCharacteristic, ObjectCharacteristic, FloatCharacteristic,
BooleanCharacteristic, NumberCharacteristic,
IntegerCharacteristic, StringArrayCharacteristic,
ObjectArrayCharacteristic, BooleanArrayCharacteristic,
NumberArrayCharacteristic, IntegerArrayCharacteristic…
resourceOrderItem A RelatedResourceOrderItem. RelatedResourceOrderItem (a
ResourceOrder item) .The resource order item which triggered
resource creation/change/termination.
resourceRelationship A ResourceRelationship. Linked resources to the one instantiate,
such as [bundled] if the resource is a bundle and you want to
describe the bundled resources inside this bundle; [reliesOn] if
the resource needs another already owned resource to rely on
(e.g. an option on an already owned mobile access resource)
[targets] or [isTargeted] (depending on the way of expressing the
link) for any other kind of links that may be useful.
resourceSpecification A ResourceSpecificationRef. Resources are physical or non-
physical components (or some combination of these) within an
enterprise’s infrastructure or inventory. They are typically
consumed or used by services (for example a physical port
assigned to a service) or contribute to the realization of a Product
(for example, a SIM card). They can be drawn from the
Application, Computing and Network domains, and include, for
example, Network Elements, software, IT systems, content and
information, and technology components. A
ResourceSpecification is an abstract base class for representing
a generic means for implementing a particular type of Resource.
In essence, a ResourceSpecification defines the common
attributes and relationships of a set of related Resources, while
Resource defines a specific instance that is based on a particular
ResourceSpecification.
partyOrPartyRole A PartyRefOrPartyRoleRef.
role A String. Role played by the related party or party role in the
context of the specific entity it is linked to. Such as 'initiator',
'customer', 'salesAgent', 'user'.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
role A String.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
{
"id": "8044",
"href": "http://server:port/resourceInventoryManagement/v5/resource/8044",
"description": "This is a Router resource with the category Router and with a
reserved resourceStatus for organisations.",
"category": "Router",
"startOperatingDate": "2020-03-04T00:00.000Z",
"endOperatingDate": "2023-09-04T08:00.000Z",
"administrativeState": "locked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"resourceVersion": "v2",
"@type": "Resource",
"relatedParty": [
{
"role": "user",
"@type": "RelatedPartyRefOrPartyRoleRef",
"partyOrPartyRole": {
"href": "https://server:port/tmf-api/partyManagement/v5/individual/456",
"id": "456",
"name": "John Doe",
"@type": "PartyRef",
"@referredType": "Individual"
}
}
],
"note": [
{
"text": "something about this resource",
"@type": "Note"
}
],
"place": {
"role": "installationAddress",
"@type": "RelatedPlaceRef",
"place": {
"id": "9912",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
},
"resourceRelationship": [
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"@type": "ResourceRef"
}
},
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "45",
"href": "http://server:port/resourceInventoryManagement/v5/resource/45",
"@type": "ResourceRef"
}
}
],
"resourceSpecification": {
"id": "4",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
},
"externalIdentifier": [
© TM Forum 2024. All Rights Reserved. Page 23
Resource Inventory Management
{
"externalIdentifierType": "Supplier-Router-Id",
"id": "XYZ-1174-B",
"owner": "Supplier-A",
"@type": "ExternalIdentifier"
}
],
"supportingResource": [
{
"id": "918273",
"href": "http://server:port/resourceInventoryManagement/v5/resource/918273",
"@type": "ResourceRef"
}
],
"resourceCharacteristic": [
{
"name": "casing size",
"valueType": "String",
"value": "19\"",
"@type": "StringCharacteristic"
}
],
"resourceOrderItem": [
{
"role": "supplier purchase",
"itemAction": "add",
"itemId": "1",
"resourceOrderId": "66588438-2",
"resourceOrderHref":
"http://server:port/resourceOrderManagement/v5/resourceOrder/66588438-2",
"@type": "RelatedResourceOrderItem",
"@referredType": "ResourceOrderItem"
}
],
"attachment": [
{
"id": "D-2024-05-13-X47",
"href": "http://server:port/documentManagement/v5/document/D-2024-05-13-X47",
"description": "delivery note",
"@type": "AttachmentRef",
"@referredType": "Document"
}
]
}
{
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"description": "This is Port 1 contained in the Router.",
"category": "Port",
"@type": "Resource",
"resourceSpecification": {
"id": "1004",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/1004",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
LogicalResource resource
Logic resource is a type of resource that describes the common set of attributes shared by
all concrete logical resources (e.g. TPE, MSISDN, IP Addresses) in the inventory.
Resource model
Resource
activationFeature : Feature [0..*]
administrativeState : ResourceAdministrativeStateType
attachment : AttachmentRef [0..*]
category : String
description : String
endOperatingDate : DateTime
externalIdentifier : ExternalIdentifier [0..*]
href : String
id : String
intent : IntentRef
name : String
note : Note [0..*]
operationalState : ResourceOperationalStateType
place : RelatedPlaceRef [0..*]
relatedParty : RelatedPartyRefOrPartyRoleRef [0..*]
resourceCharacteristic : Characteristic [0..*]
resourceOrderItem : RelatedResourceOrderItem [0..*]
resourceRelationship : ResourceRelationship [0..*]
resourceSpecification : ResourceSpecificationRef
resourceStatus : ResourceStatusType
resourceVersion : String
startOperatingDate : DateTime
supportingResource : ResourceRefOrValue [0..*]
usageState : ResourceUsageStateType
validFor : TimePeriod
@baseType : String
@schemaLocation : String
@type = Resource
discriminator:
Resource
PhysicalResource
LogicalResource
ResourceCollection
«Enumeration»
ResourceStatusType
installed
«Enumeration» «Enumeration» pendingRemoval
«Enumeration»
LogicalResource ResourceUsageStateType ResourceAdministrativeStateType standby
ResourceOperationalStateType
reserved
value : String idle locked
enable alarm
@type = LogicalResource busy unlocked
disable available
active shutdown
not exists
planned
suspended
unknown
Color Description
Resource (entry point)
Sub-resource with details in separate diagram
Enumeration
(1) : Mandatory property
Figure 3 - LogicalResource
[.] | .//
Figure 4 - LogicalResource
Field descriptions
LogicalResource fields
administrativeState A ResourceAdministrativeStateType.
ResourceAdministrativeStateType enumerations; values defined
by ITU X.731: 'locked': The resource is administratively
prohibited from performing services for its users; 'shutdown': Use
of the resource is administratively permitted to existing instances
of use only. While the system remains in the shutting down state
the manager may at any time cause the managed object to
revert to the unlocked state; 'unlocked': The resource is
administratively permitted to perform services for its users. This
is independent of its inherent operability. ENUMERATED with
values:
* locked
* unlocked
* shutdown
attachment An AttachmentRef. Attachment reference. An attachment
complements the description of an element (for instance a
product) through video, pictures.
category A String. Category of the concrete resource. e.g Gold, Silver for
MSISDN concrete resource.
description A String. Free-text description of the resource.
endOperatingDate A DateTime. A date time( DateTime). The date till the resource is
operating.
externalIdentifier An ExternalIdentifier. An identification of an entity that is owned
by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
href A String. Hyperlink reference.
id A String. Unique identifier.
intent An IntentRef. Intent reference, for when Intent is used by other
entities.
name A String. The name of the resource.
note A Note. Extra information about a given entity.
operationalState A ResourceOperationalStateType.
ResourceOperationalStateType enumerations; values defined by
ITU X.731: 'disable': The resource is totally inoperable and
unable to provide service to the user(s); 'enable': The resource is
partially or fully operable and available for use. ENUMERATED
with values:
* enable
* disable
category A String. Category of the concrete resource. e.g Gold, Silver for
MSISDN concrete resource.
description A String. Free-text description of the resource.
endOperatingDate A DateTime. A date time( DateTime). The date till the resource is
operating.
externalIdentifier An ExternalIdentifier. An identification of an entity that is owned
by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
href A String. Hyperlink reference.
id A String. Unique identifier.
intent An IntentRef. Intent reference, for when Intent is used by other
entities.
name A String. The name of the resource.
note A Note. Extra information about a given entity.
operationalState A ResourceOperationalStateType.
ResourceOperationalStateType enumerations; values defined by
ITU X.731: 'disable': The resource is totally inoperable and
unable to provide service to the user(s); 'enable': The resource is
partially or fully operable and available for use. ENUMERATED
with values:
* enable
* disable
place A RelatedPlaceRef. Entity reference. The polymorphic attributes
@type, @schemaLocation & @referredType are related to the
RelatedPlace entity and not the RelatedPlaceRef class itself.
relatedParty A RelatedPartyRefOrPartyRoleRef. RelatedParty reference. A
related party defines party or party role or its reference, linked to
a specific entity.
resourceCharacteristic A Characteristic. Describes a given characteristic of an object or
entity through a name/value pair. This is an abstract base class,
the actual value is in one of the strongly-typed subclasses :
StringCharacteristic, ObjectCharacteristic, FloatCharacteristic,
BooleanCharacteristic, NumberCharacteristic,
IntegerCharacteristic, StringArrayCharacteristic,
ObjectArrayCharacteristic, BooleanArrayCharacteristic,
NumberArrayCharacteristic, IntegerArrayCharacteristic…
resourceOrderItem A RelatedResourceOrderItem. RelatedResourceOrderItem (a
ResourceOrder item) .The resource order item which triggered
resource creation/change/termination.
startOperatingDate A DateTime. A date time( DateTime). The date from which the
resource is operating.
supportingResource A ResourceRefOrValue. The polymorphic attributes @type,
@schemaLocation & @referredType are related to the Resource
entity and not the ResourceRefOrValue class itself.
usageState A ResourceUsageStateType. ResourceUsageStateType
enumerations; values defined by ITU X.731: 'idle': The resource
is not currently in use; 'active': The resource is in use, and has
sufficient spare operating capacity to provide for additional users
simultaneously; 'busy': The resource is in use, but it has no spare
operating capacity to provide for additional users at this instant.
ENUMERATED with values:
* idle
* active
* busy
validFor A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
versionNumber A String. This is a string that identifies the version of this physical
resource. This is an optional attribute.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
PhysicalResource resource
Physical resource is a type of resource that describes the common set of attributes shared
by all concrete physical resources (e.g. EQUIPMENT) in the inventory.
Resource model
Resource
activationFeature : Feature [0..*]
administrativeState : ResourceAdministrativeStateType
attachment : AttachmentRef [0..*]
category : String
description : String
endOperatingDate : DateTime
externalIdentifier : ExternalIdentifier [0..*]
href : String
id : String
intent : IntentRef
name : String
note : Note [0..*]
operationalState : ResourceOperationalStateType
place : RelatedPlaceRef [0..*]
relatedParty : RelatedPartyRefOrPartyRoleRef [0..*]
resourceCharacteristic : Characteristic [0..*]
resourceOrderItem : RelatedResourceOrderItem [0..*]
resourceRelationship : ResourceRelationship [0..*]
resourceSpecification : ResourceSpecificationRef
resourceStatus : ResourceStatusType
resourceVersion : String
startOperatingDate : DateTime
supportingResource : ResourceRefOrValue [0..*]
usageState : ResourceUsageStateType
validFor : TimePeriod
@baseType : String
@schemaLocation : String
@type = Resource
discriminator:
Resource
PhysicalResource
LogicalResource
ResourceCollection
«Enumeration»
ResourceStatusType
installed
PhysicalResource
«Enumeration» «Enumeration» pendingRemoval
«Enumeration»
manufactureDate : DateTime ResourceUsageStateType ResourceAdministrativeStateType standby
ResourceOperationalStateType
powerState : String reserved
idle locked
serialNumber : String enable alarm
busy unlocked
versionNumber : String disable available
active shutdown
@type = PhysicalResource not exists
planned
suspended
unknown
Color Description
Resource (entry point)
Sub-resource with details in separate diagram
Enumeration
(1) : Mandatory property
Figure 5 - PhysicalResource
[.] | .//
Figure 6 - PhysicalResource
Field descriptions
PhysicalResource fields
operationalState A ResourceOperationalStateType.
ResourceOperationalStateType enumerations; values defined by
ITU X.731: 'disable': The resource is totally inoperable and
unable to provide service to the user(s); 'enable': The resource is
partially or fully operable and available for use. ENUMERATED
with values:
* enable
* disable
place A RelatedPlaceRef. Entity reference. The polymorphic attributes
@type, @schemaLocation & @referredType are related to the
RelatedPlace entity and not the RelatedPlaceRef class itself.
powerState A String. This defines the current power status of the hardware
item. Values include:
versionNumber A String. This is a string that identifies the version of this physical
resource. This is an optional attribute.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
operationalState A ResourceOperationalStateType.
ResourceOperationalStateType enumerations; values defined by
ITU X.731: 'disable': The resource is totally inoperable and
unable to provide service to the user(s); 'enable': The resource is
partially or fully operable and available for use. ENUMERATED
with values:
* enable
* disable
place A RelatedPlaceRef. Entity reference. The polymorphic attributes
@type, @schemaLocation & @referredType are related to the
RelatedPlace entity and not the RelatedPlaceRef class itself.
relatedParty A RelatedPartyRefOrPartyRoleRef. RelatedParty reference. A
related party defines party or party role or its reference, linked to
a specific entity.
resourceCharacteristic A Characteristic. Describes a given characteristic of an object or
entity through a name/value pair. This is an abstract base class,
the actual value is in one of the strongly-typed subclasses :
StringCharacteristic, ObjectCharacteristic, FloatCharacteristic,
BooleanCharacteristic, NumberCharacteristic,
IntegerCharacteristic, StringArrayCharacteristic,
ObjectArrayCharacteristic, BooleanArrayCharacteristic,
NumberArrayCharacteristic, IntegerArrayCharacteristic…
resourceOrderItem A RelatedResourceOrderItem. RelatedResourceOrderItem (a
ResourceOrder item) .The resource order item which triggered
resource creation/change/termination.
resourceRelationship A ResourceRelationship. Linked resources to the one instantiate,
such as [bundled] if the resource is a bundle and you want to
describe the bundled resources inside this bundle; [reliesOn] if
the resource needs another already owned resource to rely on
(e.g. an option on an already owned mobile access resource)
[targets] or [isTargeted] (depending on the way of expressing the
link) for any other kind of links that may be useful.
resourceSpecification A ResourceSpecificationRef. Resources are physical or non-
physical components (or some combination of these) within an
enterprise’s infrastructure or inventory. They are typically
consumed or used by services (for example a physical port
assigned to a service) or contribute to the realization of a Product
(for example, a SIM card). They can be drawn from the
Application, Computing and Network domains, and include, for
example, Network Elements, software, IT systems, content and
information, and technology components. A
ResourceSpecification is an abstract base class for representing
a generic means for implementing a particular type of Resource.
In essence, a ResourceSpecification defines the common
attributes and relationships of a set of related Resources, while
Resource defines a specific instance that is based on a particular
ResourceSpecification.
administrativeState A ResourceAdministrativeStateType.
ResourceAdministrativeStateType enumerations; values defined
by ITU X.731: 'locked': The resource is administratively
prohibited from performing services for its users; 'shutdown': Use
of the resource is administratively permitted to existing instances
of use only. While the system remains in the shutting down state
the manager may at any time cause the managed object to
revert to the unlocked state; 'unlocked': The resource is
administratively permitted to perform services for its users. This
is independent of its inherent operability. ENUMERATED with
values:
* locked
* unlocked
* shutdown
attachment An AttachmentRef. Attachment reference. An attachment
complements the description of an element (for instance a
product) through video, pictures.
category A String. Category of the concrete resource. e.g Gold, Silver for
MSISDN concrete resource.
containedResource A ResourceRefOrValue. The polymorphic attributes @type,
@schemaLocation & @referredType are related to the Resource
entity and not the ResourceRefOrValue class itself.
description A String. Free-text description of the resource.
endOperatingDate A DateTime. A date time( DateTime). The date till the resource is
operating.
externalIdentifier An ExternalIdentifier. An identification of an entity that is owned
by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
href A String. Hyperlink reference.
id A String. Unique identifier.
intent An IntentRef. Intent reference, for when Intent is used by other
entities.
name A String. The name of the resource.
note A Note. Extra information about a given entity.
operationalState A ResourceOperationalStateType.
ResourceOperationalStateType enumerations; values defined by
ITU X.731: 'disable': The resource is totally inoperable and
unable to provide service to the user(s); 'enable': The resource is
partially or fully operable and available for use. ENUMERATED
with values:
* enable
* disable
place A RelatedPlaceRef. Entity reference. The polymorphic attributes
@type, @schemaLocation & @referredType are related to the
RelatedPlace entity and not the RelatedPlaceRef class itself.
relatedParty A RelatedPartyRefOrPartyRoleRef. RelatedParty reference. A
related party defines party or party role or its reference, linked to
a specific entity.
resourceCharacteristic A Characteristic. Describes a given characteristic of an object or
entity through a name/value pair. This is an abstract base class,
the actual value is in one of the strongly-typed subclasses :
StringCharacteristic, ObjectCharacteristic, FloatCharacteristic,
BooleanCharacteristic, NumberCharacteristic,
IntegerCharacteristic, StringArrayCharacteristic,
ObjectArrayCharacteristic, BooleanArrayCharacteristic,
NumberArrayCharacteristic, IntegerArrayCharacteristic…
resourceOrderItem A RelatedResourceOrderItem. RelatedResourceOrderItem (a
ResourceOrder item) .The resource order item which triggered
resource creation/change/termination.
resourceRelationship A ResourceRelationship. Linked resources to the one instantiate,
such as [bundled] if the resource is a bundle and you want to
describe the bundled resources inside this bundle; [reliesOn] if
the resource needs another already owned resource to rely on
(e.g. an option on an already owned mobile access resource)
[targets] or [isTargeted] (depending on the way of expressing the
link) for any other kind of links that may be useful.
resourceSpecification A ResourceSpecificationRef. Resources are physical or non-
physical components (or some combination of these) within an
enterprise’s infrastructure or inventory. They are typically
consumed or used by services (for example a physical port
assigned to a service) or contribute to the realization of a Product
(for example, a SIM card). They can be drawn from the
Application, Computing and Network domains, and include, for
example, Network Elements, software, IT systems, content and
information, and technology components. A
ResourceSpecification is an abstract base class for representing
a generic means for implementing a particular type of Resource.
In essence, a ResourceSpecification defines the common
attributes and relationships of a set of related Resources, while
Resource defines a specific instance that is based on a particular
ResourceSpecification.
ResourceCollection resource
A collection of Resources handled as one Resource.
Resource model
Resource
activationFeature : Feature [0..*]
administrativeState : ResourceAdministrativeStateType
attachment : AttachmentRef [0..*]
category : String
description : String
endOperatingDate : DateTime
externalIdentifier : ExternalIdentifier [0..*]
href : String
id : String
intent : IntentRef
name : String
note : Note [0..*]
operationalState : ResourceOperationalStateType
place : RelatedPlaceRef [0..*]
relatedParty : RelatedPartyRefOrPartyRoleRef [0..*]
resourceCharacteristic : Characteristic [0..*]
resourceOrderItem : RelatedResourceOrderItem [0..*]
resourceRelationship : ResourceRelationship [0..*]
resourceSpecification : ResourceSpecificationRef
resourceStatus : ResourceStatusType
resourceVersion : String
startOperatingDate : DateTime
supportingResource : ResourceRefOrValue [0..*]
usageState : ResourceUsageStateType
validFor : TimePeriod
@baseType : String
@schemaLocation : String
@type = Resource
discriminator:
Resource
PhysicalResource
LogicalResource
ResourceCollection
«Enumeration»
ResourceStatusType
installed
«Enumeration» «Enumeration» pendingRemoval
«Enumeration»
ResourceUsageStateType ResourceAdministrativeStateType standby
ResourceCollection ResourceOperationalStateType
reserved
idle locked
@type = ResourceCollection enable alarm
busy unlocked
disable available
active shutdown
not exists
planned
suspended
unknown
containedResource
0..*
ResourceRefOrValue
discriminator:
Resource
ResourceRef
PhysicalResource
LogicalResource
ResourceCollection
Color Description
Resource (entry point)
Sub-resource
Sub-resource with details in separate diagram
Enumeration
(1) : Mandatory property
Figure 7 - ResourceCollection
[.] | .//
Figure 8 - ResourceCollection
Field descriptions
ResourceCollection fields
administrativeState A ResourceAdministrativeStateType.
ResourceAdministrativeStateType enumerations; values defined
by ITU X.731: 'locked': The resource is administratively
prohibited from performing services for its users; 'shutdown': Use
of the resource is administratively permitted to existing instances
of use only. While the system remains in the shutting down state
the manager may at any time cause the managed object to
revert to the unlocked state; 'unlocked': The resource is
administratively permitted to perform services for its users. This
is independent of its inherent operability. ENUMERATED with
values:
* locked
* unlocked
* shutdown
attachment An AttachmentRef. Attachment reference. An attachment
complements the description of an element (for instance a
product) through video, pictures.
category A String. Category of the concrete resource. e.g Gold, Silver for
MSISDN concrete resource.
containedResource A ResourceRefOrValue. The polymorphic attributes @type,
@schemaLocation & @referredType are related to the Resource
entity and not the ResourceRefOrValue class itself.
description A String. Free-text description of the resource.
endOperatingDate A DateTime. A date time( DateTime). The date till the resource is
operating.
externalIdentifier An ExternalIdentifier. An identification of an entity that is owned
by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
href A String. Hyperlink reference.
id A String. Unique identifier.
intent An IntentRef. Intent reference, for when Intent is used by other
entities.
name A String. The name of the resource.
note A Note. Extra information about a given entity.
operationalState A ResourceOperationalStateType.
ResourceOperationalStateType enumerations; values defined by
ITU X.731: 'disable': The resource is totally inoperable and
unable to provide service to the user(s); 'enable': The resource is
partially or fully operable and available for use. ENUMERATED
with values:
* enable
* disable
place A RelatedPlaceRef. Entity reference. The polymorphic attributes
@type, @schemaLocation & @referredType are related to the
RelatedPlace entity and not the RelatedPlaceRef class itself.
relatedParty A RelatedPartyRefOrPartyRoleRef. RelatedParty reference. A
related party defines party or party role or its reference, linked to
a specific entity.
resourceCharacteristic A Characteristic. Describes a given characteristic of an object or
entity through a name/value pair. This is an abstract base class,
the actual value is in one of the strongly-typed subclasses :
StringCharacteristic, ObjectCharacteristic, FloatCharacteristic,
BooleanCharacteristic, NumberCharacteristic,
IntegerCharacteristic, StringArrayCharacteristic,
ObjectArrayCharacteristic, BooleanArrayCharacteristic,
NumberArrayCharacteristic, IntegerArrayCharacteristic…
resourceOrderItem A RelatedResourceOrderItem. RelatedResourceOrderItem (a
ResourceOrder item) .The resource order item which triggered
resource creation/change/termination.
resourceRelationship A ResourceRelationship. Linked resources to the one instantiate,
such as [bundled] if the resource is a bundle and you want to
describe the bundled resources inside this bundle; [reliesOn] if
the resource needs another already owned resource to rely on
(e.g. an option on an already owned mobile access resource)
[targets] or [isTargeted] (depending on the way of expressing the
link) for any other kind of links that may be useful.
resourceSpecification A ResourceSpecificationRef. Resources are physical or non-
physical components (or some combination of these) within an
enterprise’s infrastructure or inventory. They are typically
consumed or used by services (for example a physical port
assigned to a service) or contribute to the realization of a Product
(for example, a SIM card). They can be drawn from the
Application, Computing and Network domains, and include, for
example, Network Elements, software, IT systems, content and
information, and technology components. A
ResourceSpecification is an abstract base class for representing
a generic means for implementing a particular type of Resource.
In essence, a ResourceSpecification defines the common
attributes and relationships of a set of related Resources, while
Resource defines a specific instance that is based on a particular
ResourceSpecification.
administrativeState A ResourceAdministrativeStateType.
ResourceAdministrativeStateType enumerations; values defined
by ITU X.731: 'locked': The resource is administratively
prohibited from performing services for its users; 'shutdown': Use
of the resource is administratively permitted to existing instances
of use only. While the system remains in the shutting down state
the manager may at any time cause the managed object to
revert to the unlocked state; 'unlocked': The resource is
administratively permitted to perform services for its users. This
is independent of its inherent operability. ENUMERATED with
values:
* locked
* unlocked
* shutdown
attachment An AttachmentRef. Attachment reference. An attachment
complements the description of an element (for instance a
product) through video, pictures.
category A String. Category of the concrete resource. e.g Gold, Silver for
MSISDN concrete resource.
description A String. Free-text description of the resource.
endOperatingDate A DateTime. A date time( DateTime). The date till the resource is
operating.
externalIdentifier An ExternalIdentifier. An identification of an entity that is owned
by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
href A String. Hyperlink reference.
id A String. Unique identifier.
intent An IntentRef. Intent reference, for when Intent is used by other
entities.
name A String. The name of the resource.
note A Note. Extra information about a given entity.
operationalState A ResourceOperationalStateType.
ResourceOperationalStateType enumerations; values defined by
ITU X.731: 'disable': The resource is totally inoperable and
unable to provide service to the user(s); 'enable': The resource is
partially or fully operable and available for use. ENUMERATED
with values:
* enable
* disable
versionNumber A String. This is a string that identifies the version of this physical
resource. This is an optional attribute.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
• Create Event
• Delete Event
• Attribute Value Change Event
The notification structure for all notifications in this API follow the pattern depicted by the
figure below. A notification event resource (depicted by "SpecificEvent" placeholder) is a sub
class of a generic Event structure containing at least an id of the event occurrence (eventId),
an event timestamp (eventTime), and the name of the resource (eventType). This notification
structure owns an event payload structure ("SpecificEventPayload" placeholder) linked to the
resource concerned by the notification using the resource name as access field
("resourceName" placeholder).
Resource
Create Event
Content-Type: application/json
{
"correlationId": "73d0c149-b4e0",
"description": "ResourceCreateEvent illustration",
"domain": "Commercial",
"eventId": "411f-a2c0-bd4519deeaa2",
"eventTime": "2022-08-25T12:19:41.419Z",
"eventType": "ResourceCreateEvent",
"priority": "4",
"timeOcurred": "2022-08-25T12:19:34.183Z",
"title": "ResourceCreateEvent",
"event": {
"resource": {
"id": "8044",
"href": "http://server:port/resourceInventoryManagement/v5/resource/8044",
"description": "This is a Router resource with the category Router and with a
reserved resourceStatus for organisations.",
"category": "Router",
"startOperatingDate": "2020-03-04T00:00:00.000Z",
"endOperatingDate": "2023-09-04T08:00:00.000Z",
"administrativeState": "locked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"resourceVersion": "v2",
"@type": "Resource",
"relatedParty": [
{
"role": "user",
"@type": "RelatedPartyRefOrPartyRoleRef",
"partyOrPartyRole": {
"href": "https://server:port/tmf-api/partyManagement/v5/individual/456",
"id": "456",
"name": "John Doe",
"@type": "PartyRef",
"@referredType": "Individual"
}
}
],
"note": [
{
"text": "something about this resource",
"@type": "Note"
}
],
"place": [
{
"role": "installationAddress",
"@type": "RelatedPlaceRef",
"place": {
"id": "9912",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
}
],
"resourceRelationship": [
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"@type": "ResourceRef"
}
},
© TM Forum 2024. All Rights Reserved. Page 64
Resource Inventory Management
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "45",
"href": "http://server:port/resourceInventoryManagement/v5/resource/45",
"@type": "ResourceRef"
}
}
],
"resourceSpecification": {
"id": "4",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
},
"externalIdentifier": [
{
"externalIdentifierType": "Supplier-Router-Id",
"id": "XYZ-1174-B",
"owner": "Supplier-A",
"@type": "ExternalIdentifier"
}
],
"supportingResource": [
{
"id": "918273",
"href":
"http://server:port/resourceInventoryManagement/v5/resource/918273",
"@type": "ResourceRef"
}
],
"resourceCharacteristic": [
{
"name": "casing size",
"valueType": "String",
"value": "19\"",
"@type": "StringCharacteristic"
}
],
"resourceOrderItem": [
{
"role": "supplier purchase",
"itemAction": "add",
"itemId": "1",
"resourceOrderId": "66588438-2",
"resourceOrderHref":
"http://server:port/resourceOrderManagement/v5/resourceOrder/66588438-2",
"@type": "RelatedResourceOrderItem",
"@referredType": "ResourceOrderItem"
}
],
"attachment": [
{
"id": "D-2024-05-13-X47",
"href": "http://server:port/documentManagement/v5/document/D-2024-05-13-
X47",
"description": "delivery note",
"@type": "AttachmentRef",
"@referredType": "Document"
}
]
© TM Forum 2024. All Rights Reserved. Page 65
Resource Inventory Management
}
},
"reportingSystem": {
"id": "445",
"name": "APP-655",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "62",
"name": "APP-182",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"@baseType": "Event",
"@type": "ResourceCreateEvent"
}
Delete Event
Content-Type: application/json
{
"correlationId": "dbd2cdb0-3631",
"description": "ResourceDeleteEvent illustration",
"domain": "Commercial",
"eventId": "403f-810a-354d44291cc0",
"eventTime": "2022-08-25T12:19:41.451Z",
"eventType": "ResourceDeleteEvent",
"priority": "1",
"timeOcurred": "2022-08-25T12:19:36.643Z",
"title": "ResourceDeleteEvent",
"event": {
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"@type": "Resource"
}
},
"reportingSystem": {
"id": "445",
"name": "APP-655",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "62",
"name": "APP-182",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"@baseType": "Event",
"@type": "ResourceDeleteEvent"
}
Content-Type: application/json
{
"correlationId": "da76162e-c8ca",
"description": "ResourceAttributeValueChangeEvent illustration",
"domain": "Commercial",
"eventId": "4d1f-ac04-980d628aabcc",
"eventTime": "2022-08-25T12:19:41.429Z",
"eventType": "ResourceAttributeValueChangeEvent",
"priority": "3",
"timeOcurred": "2022-08-25T12:19:38.049Z",
"title": "ResourceAttributeValueChangeEvent",
"event": {
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"name": "Port 1",
"@type": "Resource"
}
},
"reportingSystem": {
"id": "445",
"name": "APP-655",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "62",
"name": "APP-182",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"@baseType": "Event",
"@type": "ResourceAttributeValueChangeEvent"
}
Content-Type: application/json
{
"correlationId": "c9ac271e-1cf8",
"description": "ResourceStateChangeEvent illustration",
"domain": "Commercial",
"eventId": "48cf-bf1d-53aec2ec89f8",
"eventTime": "2022-08-25T12:19:41.440Z",
"eventType": "ResourceStateChangeEvent",
"priority": "4",
"timeOcurred": "2022-08-25T12:19:38.764Z",
"title": "ResourceStateChangeEvent",
"event": {
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"operationalState": "disable",
"@type": "Resource"
}
},
"reportingSystem": {
"id": "445",
"name": "APP-655",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "62",
"name": "APP-182",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"@baseType": "Event",
"@type": "ResourceStateChangeEvent"
}
API OPERATIONS
Remember the following Uniform Contract:
Filtering and attribute selection rules are described in the TMF REST Design Guidelines.
Operations on Resource
Description
This operation list Resource entities. Attribute selection is enabled for all first level attributes.
Filtering may be available depending on the compliance level supported by an
implementation.
Usage samples
Here's an example of a request for retrieving a list of Resource(s). The given criteria is the
category (Router) and state (active).
Request
GET /resource?category=Router&usageState=active
Content-Type: application/json
Response
200
[
{
"id": "8044",
"href": "http://server:port/resourceInventoryManagement/v5/resource/8044",
"description": "This is a Router resource with the category Router and with a
reserved resourceStatus for organisations.",
"category": "Router",
"startOperatingDate": "2020-03-04T00:00:00.000Z",
"endOperatingDate": "2023-09-04T08:00:00.000Z",
"administrativeState": "locked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"version": "v2",
"@type": "Resource",
"relatedParty": [
{
"role": "user",
"@type": "RelatedPartyRefOrPartyRoleRef",
"partyOrPartyRole": {
"href": "https://server:port/tmf-api/partyManagement/v5/individual/456",
"id": "456",
"name": "John Doe",
"@type": "PartyRef",
"@referredType": "Individual"
}
}
],
"note": [
{
"text": "something about this resource",
"@type": "Note"
}
],
"place": [
{
"role": "installationAddress",
"@type": "RelatedPlaceRef",
"place": {
"id": "9912",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
}
],
"resourceRelationship": [
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"@type": "ResourceRef"
}
},
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
© TM Forum 2024. All Rights Reserved. Page 70
Resource Inventory Management
"resource": {
"id": "45",
"href": "http://server:port/resourceInventoryManagement/v5/resource/45",
"@type": "ResourceRef"
}
}
],
"resourceSpecification": {
"id": "4",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
},
"externalIdentifier": [
{
"externalIdentifierType": "Supplier-Router-Id",
"id": "XYZ-1174-B",
"owner": "Supplier-A",
"@type": "ExternalIdentifier"
}
],
"supportingResource": [
{
"id": "918273",
"href": "http://server:port/resourceInventoryManagement/v5/resource/918273",
"@type": "ResourceRef"
}
],
"resourceCharacteristic": [
{
"name": "casing size",
"valueType": "String",
"value": "19\"",
"@type": "StringCharacteristic"
}
],
"resourceOrderItem": [
{
"role": "supplier purchase",
"itemAction": "add",
"itemId": "1",
"resourceOrderId": "66588438-2",
"resourceOrderHref":
"http://server:port/resourceOrderManagement/v5/resourceOrder/66588438-2",
"@type": "RelatedResourceOrderItem",
"@referredType": "ResourceOrderItem"
}
],
"attachment": [
{
"id": "D-2024-05-13-X47",
"href": "http://server:port/documentManagement/v5/document/D-2024-05-13-
X47",
"description": "delivery note",
"@type": "AttachmentRef",
"@referredType": "Document"
}
]
}
]
Retrieves a Resource by ID
GET /resource/{id}?fields=…
Description
This operation retrieves a Resource entity. Attribute selection is enabled for all first level
attributes. Filtering may be available depending on the compliance level supported by an
implementation.
Usage samples
Here's an example of a request for retrieving a Resource that contains other Resources. The
given criteria is the Resource id 8044.
Request
GET /resource/8044
Content-Type: application/json
Response
200
{
"id": "8044",
"href": "http://server:port/resourceInventoryManagement/v5/resource/8044",
"description": "This is a Router resource with the category Router and with a
reserved resourceStatus for organisations.",
"category": "Router",
"startOperatingDate": "2020-08-04T00:00:00.000Z",
"endOperatingDate": "2023-09-04T08:00:00.000Z",
"administrativeState": "locked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"version": "v2",
"@type": "Resource",
"relatedParty": [
{
"role": "user",
"@type": "RelatedPartyRefOrPartyRoleRef",
"partyOrPartyRole": {
"href": "https://server:port/tmf-api/partyManagement/v5/individual/456",
"id": "456",
"name": "John Doe",
"@type": "PartyRef",
"@referredType": "Individual"
}
}
],
"note": [
{
"text": "something about this resource",
"@type": "Note"
}
],
© TM Forum 2024. All Rights Reserved. Page 72
Resource Inventory Management
"place": [
{
"role": "installationAddress",
"@type": "RelatedPlaceRef",
"place": {
"id": "9912",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
}
],
"resourceRelationship": [
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"@type": "ResourceRef"
}
},
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "45",
"href": "http://server:port/resourceInventoryManagement/v5/resource/45",
"@type": "ResourceRef"
}
}
],
"resourceSpecification": {
"id": "4",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
},
"externalIdentifier": [
{
"externalIdentifierType": "Supplier-Router-Id",
"id": "XYZ-1174-B",
"owner": "Supplier-A",
"@type": "ExternalIdentifier"
}
],
"supportingResource": [
{
"id": "918273",
"href": "http://server:port/resourceInventoryManagement/v5/resource/918273",
"@type": "ResourceRef"
}
],
"resourceCharacteristic": [
{
"name": "casing size",
"valueType": "String",
"value": "19\"",
"@type": "StringCharacteristic"
}
],
© TM Forum 2024. All Rights Reserved. Page 73
Resource Inventory Management
"resourceOrderItem": [
{
"role": "supplier purchase",
"itemAction": "add",
"itemId": "1",
"resourceOrderId": "66588438-2",
"resourceOrderHref":
"http://server:port/resourceOrderManagement/v5/resourceOrder/66588438-2",
"@type": "RelatedResourceOrderItem",
"@referredType": "ResourceOrderItem"
}
],
"attachment": [
{
"id": "D-2024-05-13-X47",
"href": "http://server:port/documentManagement/v5/document/D-2024-05-13-X47",
"description": "delivery note",
"@type": "AttachmentRef",
"@referredType": "Document"
}
]
}
Here's an example of a request for retrieving a Resource. The given criteria is the Resource
id 8045.
Request
GET /resource/8045
Content-Type: application/json
Response
200
{
"id": "8045",
"href": "http://server:port/resourceInventoryManagement/v5/resource/8045",
"category": "Router",
"startOperatingDate": "2020-08-04T00:00:00.000Z",
"administrativeState": "locked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"version": "v2",
"@type": "Resource",
"resourceCharacteristic": [
{
"name": "premiumValue",
"valueType": "string",
"value": "gold",
"@type": "StringCharacteristic"
}
],
"resourceSpecification": {
"id": "4",
"href":
"http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
}
Creates a Resource
POST /resource?fields=…
Description
Mandatory Attributes
Usage samples
Creation of a new Resource (a Router) containing Sub-Resources (two Ports) via a POST
operation, assuming the 'Port' Resources (ids 44 and 45) have already been created before.
Request
POST /resource
Content-Type: application/json
{
"category": "Router",
"name": "Name of the resource",
"startOperatingDate": "2020-08-04T00:00:00.000Z",
"administrativeState": "locked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"version": "v2",
"@type": "Resource",
"relatedParty": [
{
"role": "user",
"@type": "RelatedPartyRefOrPartyRoleRef",
"partyOrPartyRole": {
"href": "https://server:port/tmf-api/partyManagement/v5/individual/456",
"id": "456",
"name": "John Doe",
"@type": "PartyRef",
"@referredType": "Individual"
}
}
],
"note": [
{
"text": "router installed at the user's premise",
"@type": "Note"
}
],
"place": [
{
"role": "installationAddress",
"@type": "RelatedPlaceRef",
"place": {
"id": "9912",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
}
],
"resourceRelationship": [
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"@type": "Resource"
}
},
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "45",
"href": "http://server:port/resourceInventoryManagement/v5/resource/45",
"@type": "Resource"
}
}
],
"resourceSpecification": {
"id": "4",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
}
Response
201
{
"id": "8044",
"href": "http://server:port/resourceInventoryManagement/v5/resource/8044",
"category": "Router",
"name": "Name of the resource",
"startOperatingDate": "2020-08-04T00:00:00.000Z",
"administrativeState": "locked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"version": "v2",
"@type": "Resource",
"relatedParty": [
{
"role": "user",
"@type": "RelatedPartyRefOrPartyRoleRef",
"partyOrPartyRole": {
"href": "https://server:port/tmf-api/partyManagement/v5/individual/456",
"id": "456",
"name": "John Doe",
"@type": "PartyRef",
"@referredType": "Individual"
}
}
],
"note": [
{
"text": "router installed at the user's premise",
"@type": "Note"
}
],
"place": [
{
"role": "installationAddress",
"@type": "RelatedPlaceRef",
"place": {
"id": "9912",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
}
],
"resourceRelationship": [
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"@type": "Resource"
}
},
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "45",
"href": "http://server:port/resourceInventoryManagement/v5/resource/45",
"@type": "Resource"
}
}
],
"resourceSpecification": {
"id": "4",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
},
"externalIdentifier": [
{
"externalIdentifierType": "Supplier-Router-Id",
"id": "XYZ-1174-B",
© TM Forum 2024. All Rights Reserved. Page 77
Resource Inventory Management
"owner": "Supplier-A",
"@type": "ExternalIdentifier"
}
],
"supportingResource": [
{
"id": "918273",
"href": "http://server:port/resourceInventoryManagement/v5/resource/918273",
"@type": "ResourceRef"
}
],
"resourceCharacteristic": [
{
"name": "casing size",
"valueType": "String",
"value": "19\"",
"@type": "StringCharacteristic"
}
],
"resourceOrderItem": [
{
"role": "supplier purchase",
"itemAction": "add",
"itemId": "1",
"resourceOrderId": "66588438-2",
"resourceOrderHref":
"http://server:port/resourceOrderManagement/v5/resourceOrder/66588438-2",
"@type": "RelatedResourceOrderItem",
"@referredType": "ResourceOrderItem"
}
],
"attachment": [
{
"id": "D-2024-05-13-X47",
"href": "http://server:port/documentManagement/v5/document/D-2024-05-13-X47",
"description": "delivery note",
"@type": "AttachmentRef",
"@referredType": "Document"
}
]
}
Request
POST /resource
Content-Type: application/json
{
"category": "Router",
"name": "Name of the resource",
"startOperatingDate": "2020-08-04T00:00:00.000Z",
"administrativeState": "locked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"version": "v2",
"@type": "Resource",
"relatedParty": [
{
"role": "user",
"@type": "RelatedPartyRefOrPartyRoleRef",
"partyOrPartyRole": {
"href": "https://server:port/tmf-api/partyManagement/v5/individual/456",
"id": "456",
"name": "John Doe",
"@type": "PartyRef",
"@referredType": "Individual"
}
}
],
"note": [
{
"text": "router installed at the user's premise",
"@type": "Note"
}
],
"place": [
{
"role": "installationAddress",
"@type": "RelatedPlaceRef",
"place": {
"id": "9912",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
}
],
"resourceRelationship": [
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"@type": "Resource"
}
},
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "45",
"href": "http://server:port/resourceInventoryManagement/v5/resource/45",
"@type": "Resource"
}
}
],
"resourceSpecification": {
"id": "4",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
}
Response
201
{
"id": "8044",
"href": "http://server:port/resourceInventoryManagement/v5/resource/8044",
"category": "Router",
"name": "Name of the resource",
"startOperatingDate": "2020-08-04T00:00:00.000Z",
"administrativeState": "locked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"version": "v2",
"@type": "Resource",
"relatedParty": [
{
"role": "user",
"@type": "RelatedPartyRefOrPartyRoleRef",
"partyOrPartyRole": {
"href": "https://server:port/tmf-api/partyManagement/v5/individual/456",
"id": "456",
"name": "John Doe",
"@type": "PartyRef",
"@referredType": "Individual"
}
}
],
"note": [
{
"text": "router installed at the user's premise",
"@type": "Note"
}
],
"place": [
{
"role": "installationAddress",
"@type": "RelatedPlaceRef",
"place": {
"id": "9912",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
}
],
"resourceRelationship": [
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"@type": "Resource"
}
},
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "45",
"href": "http://server:port/resourceInventoryManagement/v5/resource/45",
© TM Forum 2024. All Rights Reserved. Page 80
Resource Inventory Management
"@type": "Resource"
}
}
],
"resourceSpecification": {
"id": "4",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
},
"externalIdentifier": [
{
"externalIdentifierType": "Supplier-Router-Id",
"id": "XYZ-1174-B",
"owner": "Supplier-A",
"@type": "ExternalIdentifier"
}
],
"supportingResource": [
{
"id": "918273",
"href": "http://server:port/resourceInventoryManagement/v5/resource/918273",
"@type": "ResourceRef"
}
],
"resourceCharacteristic": [
{
"name": "casing size",
"valueType": "String",
"value": "19\"",
"@type": "StringCharacteristic"
}
],
"resourceOrderItem": [
{
"role": "supplier purchase",
"itemAction": "add",
"itemId": "1",
"resourceOrderId": "66588438-2",
"resourceOrderHref":
"http://server:port/resourceOrderManagement/v5/resourceOrder/66588438-2",
"@type": "RelatedResourceOrderItem",
"@referredType": "ResourceOrderItem"
}
],
"attachment": [
{
"id": "D-2024-05-13-X47",
"href": "http://server:port/documentManagement/v5/document/D-2024-05-13-X47",
"description": "delivery note",
"@type": "AttachmentRef",
"@referredType": "Document"
}
]
}
Description
Usage samples
Request
PATCH /resource/{id}
Content-Type: application/json-patch-query+json
[
{
"op": "replace",
"path": ".note[?(@.date=='2024-05-18T010:54:42.690Z')]",
"value": {
"text": "Port 1 configured"
}
}
]
Response
200
{
"id": "8044",
"href": "http://server:port/resourceInventoryManagement/v5/resource/8044",
"category": "Router",
"startOperatingDate": "2020-08-04T00:00:00.000Z",
"administrativeState": "unlocked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"version": "v2",
"@type": "Resource",
"relatedParty": [
{
"role": "user",
"@type": "RelatedPartyRefOrPartyRoleRef",
"partyOrPartyRole": {
"href": "https://server:port/tmf-api/partyManagement/v5/individual/456",
"id": "456",
"name": "John Doe",
"@type": "PartyRef",
"@referredType": "Individual"
}
}
],
"note": [
{
"text": "router installed at the user's premise",
"@type": "Note"
},
{
"text": "Port 1 configured",
"author": "Maria Doe",
"date": "2024-05-18T010:54:42.690Z",
"@type": "Note"
}
],
"place": [
{
"role": "installationAddress",
"@type": "RelatedPlaceRef",
"place": {
"id": "9912",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
}
],
"resourceRelationship": [
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"description": "This is Port 1 contained in the Router.",
"category": "Port",
"@type": "Resource",
"resourceSpecification": {
"id": "1004",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/1004",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
}
},
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "45",
"href": "http://server:port/resourceInventoryManagement/v5/resource/45",
"description": "This is Port 2 contained in the Router.",
"category": "Port",
"@type": "Resource",
"resourceSpecification": {
"id": "1004",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/1004",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
}
},
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
© TM Forum 2024. All Rights Reserved. Page 84
Resource Inventory Management
"id": "56",
"href": "http://server:port/resourceInventoryManagement/v5/resource/56",
"description": "This is Port 15 contained in the Router.",
"category": "Port",
"@type": "Resource",
"resourceSpecification": {
"id": "1004",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/1004",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
}
}
],
"resourceSpecification": {
"id": "4",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
},
"externalIdentifier": [
{
"externalIdentifierType": "Supplier-Router-Id",
"id": "XYZ-1174-B",
"owner": "Supplier-A",
"@type": "ExternalIdentifier"
}
],
"supportingResource": [
{
"id": "918273",
"href": "http://server:port/resourceInventoryManagement/v5/resource/918273",
"@type": "ResourceRef"
}
],
"resourceCharacteristic": [
{
"name": "casing size",
"valueType": "String",
"value": "19\"",
"@type": "StringCharacteristic"
}
],
"resourceOrderItem": [
{
"role": "supplier purchase",
"itemAction": "add",
"itemId": "1",
"resourceOrderId": "66588438-2",
"resourceOrderHref":
"http://server:port/resourceOrderManagement/v5/resourceOrder/66588438-2",
"@type": "RelatedResourceOrderItem",
"@referredType": "ResourceOrderItem"
}
],
"attachment": [
{
"id": "D-2024-05-13-X47",
"href": "http://server:port/documentManagement/v5/document/D-2024-05-13-X47",
"description": "delivery note",
"@type": "AttachmentRef",
© TM Forum 2024. All Rights Reserved. Page 85
Resource Inventory Management
"@referredType": "Document"
}
]
}
Request
PATCH /resource/{id}
Content-Type: application/json-patch+json
[
{
"op": "replace",
"path": "/administrativeState",
"value": "unlocked"
},
{
"op": "add",
"path": "/resourceRelationship",
"value": {
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"description": "This is Port 15 contained in the Router.",
"category": "Port",
"@type": "Resource",
"resourceSpecification": {
"id": "1004",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/1004",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
}
}
}
]
Response
200
{
"id": "8044",
"href": "http://server:port/resourceInventoryManagement/v5/resource/8044",
"category": "Router",
"startOperatingDate": "2020-08-04T00:00:00.000Z",
"administrativeState": "unlocked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"version": "v2",
"@type": "Resource",
"relatedParty": [
{
"role": "user",
"@type": "RelatedPartyRefOrPartyRoleRef",
"partyOrPartyRole": {
"href": "https://server:port/tmf-api/partyManagement/v5/individual/456",
"id": "456",
"name": "John Doe",
"@type": "PartyRef",
"@referredType": "Individual"
}
}
],
"note": [
{
"text": "router installed at the user's premise",
"@type": "Note"
}
],
"place": [
{
"role": "installationAddress",
"@type": "RelatedPlaceRef",
"place": {
"id": "9912",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
}
],
"resourceRelationship": [
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"description": "This is Port 1 contained in the Router.",
"category": "Port",
"@type": "Resource",
"resourceSpecification": {
"id": "1004",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/1004",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
}
},
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "45",
"href": "http://server:port/resourceInventoryManagement/v5/resource/45",
"description": "This is Port 2 contained in the Router.",
"category": "Port",
"@type": "Resource",
"resourceSpecification": {
"id": "1004",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/1004",
"@type": "ResourceSpecificationRef",
© TM Forum 2024. All Rights Reserved. Page 87
Resource Inventory Management
"@referredType": "ResourceSpecification"
}
}
},
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "56",
"href": "http://server:port/resourceInventoryManagement/v5/resource/56",
"description": "This is Port 15 contained in the Router.",
"category": "Port",
"@type": "Resource",
"resourceSpecification": {
"id": "1004",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/1004",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
}
}
],
"resourceSpecification": {
"id": "4",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
}
Request
PATCH /resource/{id}
Content-Type: application/merge-patch+json
{
"@type": "Resource",
"place": [
{
"@type": "RelatedPlaceRef",
"role": "installationAddress",
"place": {
"id": "9012",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9012",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
}
]
}
Response
200
{
"id": "8044",
"href": "http://server:port/resourceInventoryManagement/v5/resource/8044",
"category": "Router",
"startOperatingDate": "2020-08-04T00:00:00.000Z",
"administrativeState": "locked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"version": "v2",
"@type": "Resource",
"relatedParty": [
{
"role": "user",
"@type": "RelatedPartyRefOrPartyRoleRef",
"partyOrPartyRole": {
"href": "https://server:port/tmf-api/partyManagement/v5/individual/456",
"id": "456",
"name": "John Doe",
"@type": "PartyRef",
"@referredType": "Individual"
}
}
],
"note": [
{
"text": "router installed at the user's premise",
"@type":"Note"
}
],
"place": [
{
"role": "installationAddress",
"@type": "RelatedPlaceRef",
"place": {
"id": "9012",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9012",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
}
],
"resourceRelationship": [
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/v5/resource/44",
"description": "This is Port 1 contained in the Router.",
"category": "Port",
"@type": "Resource",
"resourceSpecification": {
"id": "1004",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/1004",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
© TM Forum 2024. All Rights Reserved. Page 89
Resource Inventory Management
}
},
{
"relationshipType": "contains",
"@type": "ResourceRelationship",
"resource": {
"id": "45",
"href": "http://server:port/resourceInventoryManagement/v5/resource/45",
"description": "This is Port 2 contained in the Router.",
"category": "Port",
"@type": "Resource",
"resourceSpecification": {
"id": "1004",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/1004",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
}
}
}
],
"resourceSpecification": {
"id": "4",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
},
"externalIdentifier": [
{
"externalIdentifierType": "Supplier-Router-Id",
"id": "XYZ-1174-B",
"owner": "Supplier-A",
"@type": "ExternalIdentifier"
}
],
"supportingResource": [
{
"id": "918273",
"href": "http://server:port/resourceInventoryManagement/v5/resource/918273",
"@type": "ResourceRef"
}
],
"resourceCharacteristic": [
{
"name": "casing size",
"valueType": "String",
"value": "19\"",
"@type": "StringCharacteristic"
}
],
"resourceOrderItem": [
{
"role": "supplier purchase",
"itemAction": "add",
"itemId": "1",
"resourceOrderId": "66588438-2",
"resourceOrderHref":
"http://server:port/resourceOrderManagement/v5/resourceOrder/66588438-2",
"@type": "RelatedResourceOrderItem",
"@referredType": "ResourceOrderItem"
}
],
© TM Forum 2024. All Rights Reserved. Page 90
Resource Inventory Management
"attachment": [
{
"id": "D-2024-05-13-X47",
"href": "http://server:port/documentManagement/v5/document/D-2024-05-13-X47",
"description": "delivery note",
"@type": "AttachmentRef",
"@referredType": "Document"
}
]
}
Request
PATCH /resource/{id}
Content-Type: application/json
{
"@type": "Resource",
"place": [
{
"@type": "RelatedPlaceRef",
"role": "installationAddress",
"place": {
"id": "9012",
"href":
"https://host:port/geographicAddressManagement/v5/geographicAddress/9012",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
}
}
]
}
Response
200
{
"id": "8044",
"href": "http://server:port/resourceInventoryManagement/v5/resource/8044",
"category": "Router",
"startOperatingDate": "2020-08-04T00:00:00.000Z",
"administrativeState": "locked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"version": "v2",
"@type": "Resource",
"relatedParty": [
{
"role": "user",
"@type": "RelatedPartyRefOrPartyRoleRef",
"partyOrPartyRole": {
"href": "https://server:port/tmf-api/partyManagement/v5/individual/456",
"id": "456",
"resourceSpecification": {
"id": "4",
"href": "
http://server:port/resourceCatalogManagement/v5/resourceSpecification/4",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification"
},
"externalIdentifier": [
{
"externalIdentifierType": "Supplier-Router-Id",
"id": "XYZ-1174-B",
"owner": "Supplier-A",
"@type": "ExternalIdentifier"
}
],
"supportingResource": [
{
"id": "918273",
"href": "http://server:port/resourceInventoryManagement/v5/resource/918273",
"@type": "ResourceRef"
}
],
"resourceCharacteristic": [
{
"name": "casing size",
"valueType": "String",
"value": "19\"",
"@type": "StringCharacteristic"
}
],
"resourceOrderItem": [
{
"role": "supplier purchase",
"itemAction": "add",
"itemId": "1",
"resourceOrderId": "66588438-2",
"resourceOrderHref":
"http://server:port/resourceOrderManagement/v5/resourceOrder/66588438-2",
"@type": "RelatedResourceOrderItem",
"@referredType": "ResourceOrderItem"
}
],
"attachment": [
{
"id": "D-2024-05-13-X47",
"href": "http://server:port/documentManagement/v5/document/D-2024-05-13-X47",
"description": "delivery note",
"@type": "AttachmentRef",
"@referredType": "Document"
}
]
}
Deletes a Resource
DELETE /resource/{id}
Description
API NOTIFICATIONS
For every single of operation on the entities use the following templates and provide sample
REST notification POST calls.
It is assumed that the Pub/Sub uses the Register and UnRegister mechanisms described in
the REST Guidelines reproduced below.
Register listener
POST /hub
Description
Sets the communication endpoint address the service instance must use to deliver
information about its health state, execution state, failures and metrics. Subsequent POST
calls will be rejected by the service if it does not support multiple listeners. In this case
DELETE /api/hub/{id} must be called before an endpoint can be created again.
Behavior
Usage Samples
Request
POST /api/hub
Accept: application/json
{
"callback": "http://in.listener.com"
}
Response
201
Content-Type: application/json
Location: /api/hub/42
{
"id":"42",
"callback": "http://in.listener.com",
"query":""
}
Unregister listener
DELETE /hub/{id}
Description
Clears the communication endpoint address that was set by creating the Hub..
Behavior
Usage Samples
Request
DELETE /api/hub/42
Accept: application/json
Response
204
Description
Clears the communication endpoint address that was set by creating the Hub.
Provides to a registered listener the description of the event that was raised. The
/client/listener url is the callback url passed when registering the listener.
Behavior
Returns HTTP/1.1 status code 201 if the service is able to set the configuration.
Usage Samples
Here’s an example of a notification received by the listener. In this example “EVENT TYPE”
should be replaced by one of the notification types supported by this API (see Notification
resources Models section) and EVENT BODY refers to the data structure of the given
notification type.
Request
© TM Forum 2024. All Rights Reserved. Page 95
Resource Inventory Management
POST /client/listener
Accept: application/json
{
"event": {
EVENT BODY
},
"eventType": "EVENT_TYPE"
}
Response
201
For detailed examples on the general TM Forum notification mechanism, see the TMF REST
Design Guidelines.
Acknowledgements
Release History
Release Date Release led by: Description
Number
Contributors to Document
Version Date Modified by Description
Number
5.0.0 04.06.2024 Lutz Bettge migrated to version 5
Alexander Klörig
Deutsche Telekom