TMF702 Resource Activation Management API User Guide v4.0.1
TMF702 Resource Activation Management API User Guide v4.0.1
TMF702
Team Approved Date: 28-May-2020
NOTICE
Copyright © TM Forum 2020. 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.
TM FORUM invites any TM FORUM Member or any other party that believes it has patent claims that would
necessarily be infringed by implementations of this TM Forum Standards Final Deliverable, to notify the TM FORUM
Team Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a
manner consistent with the IPR Mode of the TM FORUM Collaboration Project Team that produced this deliverable.
The TM FORUM invites any party to contact the TM FORUM Team Administrator if it is aware of a claim of
ownership of any patent claims that would necessarily be infringed by implementations of this TM FORUM
Standards Final Deliverable by a patent holder that is not willing to provide a license to such patent claims in a
manner consistent with the IPR Mode of the TM FORUM Collaboration Project Team that produced this TM FORUM
Standards Final Deliverable. TM FORUM may include such claims on its website but disclaims any obligation to do
so.
TM FORUM takes no position regarding the validity or scope of any intellectual property or other rights that might
be claimed to pertain to the implementation or use of the technology described in this TM FORUM Standards Final
Deliverable or the extent to which any license under such rights might or might not be available; neither does it
represent that it has made any effort to identify any such rights. Information on TM FORUM's procedures with
respect to rights in any document or deliverable produced by a TM FORUM Collaboration Project Team can be
found on the TM FORUM website. Copies of claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to obtain a general license or permission for the
use of such proprietary rights by implementers or users of this TM FORUM Standards Final Deliverable, can be
obtained from the TM FORUM Team Administrator. TM FORUM makes no representation that any information or
list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential
Claims.
Table of Contents
NOTICE ....................................................................................................................................................................... 2
Table of Contents ..................................................................................................................................................... 4
List of Tables ............................................................................................................................................................. 6
Introduction .............................................................................................................................................................. 7
SAMPLE USE CASES ......................................................................................................................................................... 8
Support of polymorphism and extension patterns ........................................................................................................ 9
RESOURCE MODEL ........................................................................................................................................................ 10
Managed Entity and Task Resource Models ..................................................................................................... 10
Resource resource ................................................................................................................................................. 10
Monitor resource .................................................................................................................................................. 17
Notification Resource Models .............................................................................................................................. 20
Resource Create Event .......................................................................................................................................... 21
Resource Attribute Value Change Event ............................................................................................................... 22
Resource State Change Event................................................................................................................................ 22
Resource Delete Event .......................................................................................................................................... 22
Monitor Create Event ............................................................................................................................................ 23
Monitor Attribute Value Change Event ................................................................................................................. 23
Monitor State Change Event ................................................................................................................................. 23
Monitor Delete Event ............................................................................................................................................ 24
API OPERATIONS ........................................................................................................................................................... 25
Operations on Resource ........................................................................................................................................... 25
List resources ......................................................................................................................................................... 25
Retrieve resource .................................................................................................................................................. 26
Create resource ..................................................................................................................................................... 29
Patch resource ....................................................................................................................................................... 31
Delete resource ..................................................................................................................................................... 33
Operations on Monitor ............................................................................................................................................. 34
List monitors .......................................................................................................................................................... 34
Retrieve monitor ................................................................................................................................................... 35
API NOTIFICATIONS....................................................................................................................................................... 36
Register listener ........................................................................................................................................................ 36
Unregister listener .................................................................................................................................................... 37
Publish Event to listener ........................................................................................................................................... 37
Acknowledgements ...................................................................................................................................................... 39
Version History.......................................................................................................................................................... 39
Release History ......................................................................................................................................................... 39
List of Tables
N/A
Introduction
The following document is intended to provide details of the REST API interface for the Resource Activation API.
The intent of this API is to provide a consistent/standardized mechanism to activate Resources.
It includes the model definition as well as all available operations.
The Resource Activation model definition is based on the same Resource model as in the Resource Inventory.
The Resource Activation API can be used to query the resource instances to aquire resource activation states and
the attributes.
The Resource Activation API can be used to create/update to configure and activate the resource instances.
Support of polymorphic collections and types and schema based extension is provided by means of a list of generic
meta-attributes that we describe below. Polymorphism in collections occurs when entities inherit from base
entities, for instance a LogicalResource and PhysicalResource inheriting properties from the abstract Resource
entity.
Generic support of polymorphism and pattern extensions is described in the TMF API Guidelines v3.0 Part 2
document.
The @type attribute provides a way to represent the actual class type of an entity. For example, within a list of
Resource instances some may be instances of LogicalResource where other could be instances of PhysicalResource.
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 a ResourceRef 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 LogicalResourceRef or PhysicalResourceRef, 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 @schemaLocation property can be used in resources to allow specifying user-defined properties of an Entity or
to specify the expected characteristics of an entity.
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
Field descriptions
Resource fields
activationFeature A list of features (Feature [*]). Applicable configuration features of a resource for
activation.
category A string. Category of the concrete resource. e.g Gold, Silver for MSISDN concrete
resource.
endOperatingDate A date time (DateTime). A date time( DateTime). The date till the resource is
operating.
note A list of notes (Note [*]). Extra information about a given entity.
relatedParty A list of related parties (RelatedParty [*]). Related Entity reference. A related party
defines party or party role linked to a specific entity.
resourceRelationship A list of resource relationships (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.
resourceStatus A resource status type (ResourceStatusType). Tracks the resource status of the
resource, such as standby, alarm, available, reserved, suspended and so on.
resourceVersion A string. A field that identifies the specific version of an instance of a resource.
startOperatingDate A date time (DateTime). A date time( DateTime). The date from which the resource is
operating.
usageState A resource usage state type (ResourceUsageStateType). Tracks the usage state of the
resource, such as idle, active, busy and so on.
AttachmentRefOrValue sub-resource
@referredType A string. The actual type of the target instance when needed for disambiguation.
url A string. Uniform Resource Locator, is a web page address (a subset of URI).
content A base 6 4 (Base64). The actual contents of the attachment object, if embedded,
encoded as base64.
mimeType A string. Attachment mime type such as extension file for video, picture and
document.
validFor A time period. The period of time for which the attachment is valid.
Characteristic sub-resource
CharacteristicRelationship sub-resource
Feature sub-resource
constraint A list of constraint references (ConstraintRef [*]). This is a list of feature constraints.
FeatureRelationship sub-resource
Configuration feature.
validFor A time period. The period for which this feature relationship is valid.
Note sub-resource
id A string. Identifier of the note within its containing entity (may or may not be globally
unique, depending on provider implementation).
Quantity sub-resource
RelatedParty sub-resource
Related Entity reference. A related party defines party or party role linked to a specific entity.
@referredType A string. The actual type of the target instance when needed for disambiguation.
RelatedPlaceRefOrValue sub-resource
Related Entity reference. A related place defines a place described by reference or by value linked to a specific
entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and
not the RelatedPlaceRefOrValue class itself.
@referredType A string. The actual type of the target instance when needed for disambiguation.
name A string. A user-friendly name for the place, such as "Paris Store", "London Store",
"Main Home".
role A string.
ResourceRefOrValue sub-resource
A resource to be created defined by value or existing defined by reference. The polymorphic attributes @type,
@schemaLocation & @referredType are related to the product entity and not the RelatedProductRefOrValue class
itself.
@referredType A string. The actual type of the target instance when needed for disambiguation.
category A string. Category of the concrete resource. e.g Gold, Silver for MSISDN concrete
resource.
endOperatingDate A date time (DateTime). A date time( DateTime). The date till the resource is
operating.
resourceVersion A string. A field that identifies the specific version of an instance of a resource.
startOperatingDate A date time (DateTime). A date time( DateTime). The date from which the resource is
operating.
activationFeature A list of features (Feature [*]). Applicable configuration features of a resource for
activation.
note A list of notes (Note [*]). Extra information about a given entity.
relatedParty A list of related parties (RelatedParty [*]). Related Entity reference. A related party
defines party or party role linked to a specific entity.
resourceRelationship A list of resource relationships (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.
resourceStatus A resource status type (ResourceStatusType). Tracks the resource status of the
resource, such as standby, alarm, available, reserved, suspended and so on.
usageState A resource usage state type (ResourceUsageStateType). Tracks the usage state of the
resource, such as idle, active, busy and so on.
ResourceRelationship sub-resource
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.
relationshipType A string. Type of the resource relationship, 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.
ConstraintRef relationship
Constraint reference. The Constraint resource represents a policy/rule applied to an entity or entity spec.
ResourceSpecificationRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
{
"id": "8044",
"href": "http://server:port/resourceInventoryManagement/resource/8044",
"description": "This is a MSISDN resource with the category Premium and with a reserved resourceStatus for
organisations.",
"category": "Premium",
"value": "0170112231",
"endOperatingDate": "2022-07-04T08:00.000Z",
"name": "MobileNumber xx",
"administrativeState": "locked",
"operationalState": "enable",
"usageState": "active",
"resourceStatus": "reserved",
"relatedParty": [
{
"href": "https://server:port/tmf-api/partyManagement/v4/individual/456",
"id": "456",
"name": "John Doe",
"role": "user",
"@referredType": "Individual"
}
],
"note": [
{
"text": "something about this resource"
}
],
"place": {
"id": "9912",
"href": "https://host:port/geographicAddressManagement/v4/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
},
"resourceRelationship": [
{
"relationshipType": "contains",
"resource": {
"id": "44",
"href": "http://server:port/resourceInventoryManagement/resource/44"
}
}
],
"resourceSpecification": {
"id": "4",
"href": " http://server:port/resourceCatalogManagement/resourceSpecification/4",
"@referredType": "LogicalResourceSpecification"
},
"startOperatingDate": "2020-03-04T00:00.000Z",
"version": "business v2",
"@type": "MSISDN",
"@schemaLocation": "http://server:port/MSISDN_Resource.schema.json",
"@baseType": "Resource"
}
Monitor resource
Monitoring of resources.
Resource model
Field descriptions
Monitor fields
state A string. The Monitor state of the resource. InProgress, InError, Completed.
HeaderItem sub-resource
Request sub-resource
A response to a request.
body A string. The body of the request. For example, for an HTTP request might contain
content of a form.
header A list of header items (HeaderItem [1..*]). Items included in the header of the request.
For example, for an HTTP request might contain requested locale, basic
authentication.
to A string. The target of the request, e.g. a URL for an HTTP request.
Response sub-resource
A response to a request.
body A string. The body of the response. For example, for an HTTP response might contain
HTML for rendering.
header A list of header items (HeaderItem [1..*]). Items included in the header of the
response. For example, for an HTTP response might contain negotiated locale.
statusCode A string. The status of the response. For example, for an HTTP response would be
codes such as 200, 400, etc.
{
"href": "https:/server:port/tmf-api/monitor/v4/monitor/4035",
"id": "4035",
"request": {
"text": "--SEE RESOURCE RESQUEST SAMPLE--"
},
"response": {
"text": "--SEE RESOURCE RESPONSE SAMPLE--"
},
"sourceHref": "http://server:port/resourceInventoryManagement/logicalResource/444",
"state": "completed"
}
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).
We provide below the json representation of an example of a 'ResourceCreateEvent' notification event object
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ResourceCreateEvent",
"event": {
"resource" :
{-- SEE Resource RESOURCE SAMPLE --}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ResourceAttributeValueChangeEvent",
"event": {
"resource" :
{-- SEE Resource RESOURCE SAMPLE --}
}
}
We provide below the json representation of an example of a 'ResourceStateChangeEvent' notification event object
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ResourceStateChangeEvent",
"event": {
"resource" :
{-- SEE Resource RESOURCE SAMPLE --}
}
}
We provide below the json representation of an example of a 'ResourceDeleteEvent' notification event object
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ResourceDeleteEvent",
"event": {
"resource" :
We provide below the json representation of an example of a 'MonitorCreateEvent' notification event object
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"MonitorCreateEvent",
"event": {
"monitor" :
{-- SEE Monitor RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"MonitorAttributeValueChangeEvent",
"event": {
"monitor" :
{-- SEE Monitor RESOURCE SAMPLE --}
}
}
We provide below the json representation of an example of a 'MonitorStateChangeEvent' notification event object
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"MonitorStateChangeEvent",
"event": {
"monitor" :
{-- SEE Monitor RESOURCE SAMPLE --}
}
}
We provide below the json representation of an example of a 'MonitorDeleteEvent' notification event object
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"MonitorDeleteEvent",
"event": {
"monitor" :
{-- SEE Monitor RESOURCE SAMPLE --}
}
}
API OPERATIONS
Remember the following Uniform Contract:
Filtering and attribute selection rules are described in the TMF REST Design Guidelines.
Operations on Resource
List resources
GET /resource?fields=...&{filtering}
Description
Usage Samples
Here's an example of a request for retrieving a list of activated Resource(s). The given criteria is the @type
(MSISDN) and usageState (active).
Request
GET /tmf-
api/ResourceActivationAndConfiguration/v4/resource?fields=id,href,usageState,@type&usageState=active&@type=MSISD
N
Accept: application/json
Response
200
{
"id": "444",
"href": "http://server:port/resourceInventoryManagement/logicalResource/444",
"category": "Premium",
"value": "0170123456",
"usageState": "idle",
"@type": "MSISDN"
}
Retrieve resource
GET /resource/{id}?fields=...&{filtering}
Description
Usage Samples
Here's an example of a request for retrieving an activated LogicalResource for use case 1. The given criteria is the
Resource id 444.
Request
GET /tmf-api/ResourceActivationAndConfiguration/v4/resource/444
Accept: application/json
Response
200
{
"id": "444",
"href": "http://server:port/resourceInventoryManagement/logicalResource/444",
"description": "This is a MSISDN resource with the category Premium and with an unlocked administrativeState.",
"category": "Premium",
"value": "0170123456",
"administrativeState": "unlocked",
"operationalState": "disable",
"usageState": "idle",
"resourceStatus": "available",
"resourceSpecification": {
"id": "4",
"href": " http://server:port/resourceCatalogManagement/resourceSpecification/4",
"@referredType": "LogicalResourceSpecification"
},
"resourceCharacteristic": [
{
"name": "premiumValue",
"valueType": "string",
"value": "gold"
}
],
"relatedParty": [
{
"href": "https://server:port/tmf-api/partyManagement/v4/individual/456",
"id": "456",
"name": "John Doe",
"role": "user",
"@referredType": "Individual"
}
],
"@type": "MSISDN",
"@schemaLocation": "http://server:port/MSISDN.schema.json",
"@baseType": "Resource"
}
Here's an example of a request for retrieving an activated PhysicalResource for use case 1. The given criteria is the
Resource id 42.
Request
GET /tmf-api/ResourceActivationAndConfiguration/v4/resource/42
Accept: application/json
Response
200
{
"id": "42",
"href": "http://server:port/resourceInventoryManagement/resource/42",
"publicIdentifier": "07455559833",
"name": "RouterXX",
"administrativeState": "unlocked",
"operationalState": "enable",
"usageState": "idle",
"resourceStatus": "available",
"serialNumber": "12444545544",
"versionNumber": "1.22",
"manufactureDate": "05-04-2017T00:00.000Z",
"resourceSpecification": {
"id": "4",
"href": " http://server:port/resourceCatalogManagement/resourceSpecification/4",
"@referredType": "PhysicalResourceSpecification"
},
"resourceRelationship": [
{
"relationshipType": "contains",
"resource": {
"id": "44",
"href": " http://server:port/resourceInventoryManagement/resource/44"
}
}
],
"relatedParty": [
{
"href": "https://server:port/tmf-api/partyManagement/v4/individual/456",
"id": "456",
"name": "John Doe",
"role": "user",
"@referredType": "Individual"
}
],
"resourceAttachment": [
{
"id": "123",
"href": "http://server:port/documentManagement/document/123"
}
],
"note": [
{
"text": "something about this resource"
}
],
"place": {
"id": "9912",
"href": "https://host:port/geographicAddressManagement/v4/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
},
"@type": "Equipment ",
"@schemaLocation": "http: //server:port/partyManagement/schema/Equipment.schema.json",
"@baseType": "Resource"
}
Create resource
POST /resource
Description
The following tables provide the list of mandatory and non mandatory attributes when creating a Resource,
including any possible rule conditions and applicable default values. Notice that it is up to an implementer to add
additional mandatory attributes.
Usage Samples
Here's an example of a request for creating a LogicalResource for activation use case 2 - the resulting resource ID is
444.
Request
POST /tmf-api/ResourceActivationAndConfiguration/v4/resource
Content-Type: application/json
"category": "Premium",
"value": "0170123456",
"administrativeState": "unlocked",
"operationalState": "disable",
"usageState": "idle",
"resourceStatus": "available",
"resourceSpecification": {
"id": "4",
"href": " http://server:port/resourceCatalogManagement/resourceSpecification/4",
"@referredType": "LogicalResourceSpecification"
},
"resourceCharacteristic": [
{
"name": "premiumValue",
"valueType": "string",
"value": "gold"
}
],
"relatedParty": [
{
"href": "https://server:port/tmf-api/partyManagement/v4/individual/456",
"id": "456",
"name": "John Doe",
"role": "user",
"@referredType": "Individual"
}
],
"@type": "MSISDN",
"@schemaLocation": "http://server:port/MSISDN.schema.json",
"@baseType": "Resource"
}
Response
201
{
"id": "444",
"href": "http://server:port/resourceInventoryManagement/logicalResource/444",
"category": "Premium",
"value": "0170123456",
"administrativeState": "unlocked",
"operationalState": "disable",
"usageState": "idle",
"resourceStatus": "available",
"resourceSpecification": {
"id": "4",
"href": "http://server:port/resourceCatalogManagement/resourceSpecification/4",
"@referredType": "LogicalResourceSpecification"
},
"resourceCharacteristic": [
{
"name": "premiumValue",
"valueType": "string",
"value": "gold"
}
],
"relatedParty": [
{
"href": "https://server:port/tmf-api/partyManagement/v4/individual/456",
"id": "456",
"name": "John Doe",
"role": "user",
"@referredType": "Individual"
}
],
"@type": "MSISDN",
"@schemaLocation": "http://server:port/MSISDN.schema.json",
"@baseType": "Resource"
}
Patch resource
PATCH /resource/{id}
Description
Note: If the update operation yields to the creation of sub-resources or relationships, the same rules concerning
mandatory sub-resource attributes and default value settings in the POST operation applies to the PATCH
operation. Hence these tables are not repeated here.
The tables below provide the list of patchable and non patchable attributes, including constraint rules on their
usage.
Usage Samples
Here's an example of a request for updating a usageState of a PhysicalResource for use case 2 - Change value of the
resourceStatus for resource id 42.
Request
PATCH /tmf-api/ResourceActivationAndConfiguration/v4/resource/42
Content-Type: merge-patch/json
{
"resourceStatus": "reserved"
}
Response
200
{
"id": "42",
"href": "http://server:port/resourceInventoryManagement/resource/42",
"publicIdentifier": "07455559833",
"name": "RouterXX",
"administrativeState": "unlocked",
"operationalState": "enable",
"usageState": "idle",
"resourceStatus": "reserved",
"serialNumber": "12444545544",
"versionNumber": "1.22",
"manufactureDate": "05-04-2017T08:00.000Z",
"resourceSpecification": {
"id": "4",
"href": " http://server:port/resourceCatalogManagement/resourceSpecification/4",
"@referredType": "PhysicalResourceSpecification"
},
"resourceRelationship": [
{
"type": "contains",
"resource": {
"id": "44",
"href": " http://server:port/resourceInventoryManagement/resource/44"
}
}
],
"relatedParty": [
{
"href": "https://server:port/tmf-api/partyManagement/v4/individual/456",
"id": "456",
"name": "John Doe",
"role": "user",
"@referredType": "Individual"
}
],
"resourceAttachment": [
{
"id": "123",
"href": "http://server:port/documentManagement/document/123"
}
],
"note": [
{
"text": "something about this resource"
}
],
"place": {
"id": "9912",
"href": "https://host:port/geographicAddressManagement/v4/geographicAddress/9912",
"@type": "PlaceRef",
"@referredType": "GeographicAddress"
},
"@type": "Equipment",
"@schemaLocation": "http://server:port/partyManagement/schema/Equipment.schema.json",
"@baseType": "Resource"
}
Delete resource
DELETE /resource/{id}
Description
Usage Samples
Request
DELETE /tmf-api/ResourceActivationAndConfiguration/v4/resource/444
Response
204
Operations on Monitor
List monitors
GET /monitor?fields=...&{filtering}
Description
Usage Samples
Here's an example of a request for retrieving a list of Monitor resource. The given criteria is the state (completed).
Request
GET /tmf-api/ResourceActivationAndConfiguration/v4/monitor?fields=id,href,response,state&state=inProcess
Accept: application/json
Response
200
{
"id": "5634",
"href": "https://server:port/resource/v4/monitor/5634",
"response": {
"text": "--SEE RESOURCE RESPONSE SAMPLE--"
},
"state": "inProgress"
}
Retrieve monitor
GET /monitor/{id}?fields=...&{filtering}
Description
Usage Samples
Here's an example of a request for retrieving the Monitor for use case 1. The given criteria is the Monitor id 5633.
Request
GET /tmf-api/ResourceActivationAndConfiguration/v4/monitor/5633
Accept: application/json
Response
200
{
"id": "5633",
"href": "https://<server>/resource/v4/monitor/5633",
"response": {
"text": "--SEE RESOURCE RESPONSE SAMPLE--"
},
"state": "completed"
}
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":null}
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
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
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
Version History
Version Date Release led by: Description
Number
Mariano Belaunde
Orange Labs
Version 4.0.0 28-May-2020 Thomas Braun Based on the TMF Open API
Common Data Model
Deutsche Telekom
Release History
Release Date Release led by: Description
Number