TMF914 IoT Service Management API v4.0.0 Beta Specification
TMF914 IoT Service Management API v4.0.0 Beta Specification
TMF914
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.
Table of Contents
NOTICE ....................................................................................................................................................................... 2
Table of Contents ..................................................................................................................................................... 3
List of Tables ............................................................................................................................................................. 8
Introduction .............................................................................................................................................................. 9
SAMPLE USE CASES ....................................................................................................................................................... 10
Support of polymorphism and extension patterns ...................................................................................................... 11
RESOURCE MODEL ........................................................................................................................................................ 12
Managed Entity and Task Resource Models ..................................................................................................... 12
Iot Service resource ............................................................................................................................................... 12
Service Catalog resource ....................................................................................................................................... 20
Service Category resource ..................................................................................................................................... 23
Service Candidate resource ................................................................................................................................... 26
Service Qualification resource ............................................................................................................................... 29
Service Problem resource...................................................................................................................................... 34
Iot Service Specification resource ......................................................................................................................... 42
Service Test resource............................................................................................................................................. 51
Service Test Specification resource ....................................................................................................................... 56
Usage Consumption Report Request resource ..................................................................................................... 60
User resource ........................................................................................................................................................ 64
Usage Consumption Report resource ................................................................................................................... 64
Import Job resource .............................................................................................................................................. 69
Export Job resource ............................................................................................................................................... 71
Notification Resource Models .............................................................................................................................. 72
Iot Service Create Event Notification .................................................................................................................... 74
Iot Service Iot Service Attribute Value Change Event Notification ....................................................................... 75
Iot Service Iot Service State Change Event Notification ........................................................................................ 75
Iot Service Iot Service Batch Event Notification .................................................................................................... 75
Iot Service Iot Service Delete Event Notification................................................................................................... 76
Service Catalog Service Catalog Create Event Notification ................................................................................... 76
Service Catalog Service Catalog Change Event Notification .................................................................................. 76
List of Tables
N/A
Introduction
The following document is the specification of the IoT Service Management API User Guide. It includes the model
definition as well as all available operations.
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 BillingAccount and SettlementAccount inheriting properties from the abstract Account
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
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 @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 model
Field descriptions
IotService fields
isServiceEnabled A boolean. If FALSE, this particular Service has NOT been enabled for use.
isStateful A boolean. If TRUE, this Service can be changed without affecting any other services.
serviceDate A string. Date when the service was created (whatever its status).
startMode A string. This attribute is an enumerated integer that indicates how the Service is
started, such as: 0: Unknown; 1: Automatically by the managed environment; 2:
Automatically by the owning device; 3: Manually by the Provider of the Service; 4:
Manually by a Customer of the Provider; 5: Any of the above.
dataAccessEndPoint A data access endpoint (DataAccessEndpoint). This is the endpoint exposed by the IoT
Device to authorized users. A list of data access endpoints (DataAccessEndpoint[*]).
Each endpoint is exposed by the IoT device to authorized users.
note A list of notes (Note [*]). A list of notes made on this service.
serviceOrder A list of service order references (ServiceOrderRef [*]). A list of service orders related
to this service.
place A list of places (Place [*]). A list of places (Place [*]). Used to define a place useful for
the service (for example a delivery geographical place).
relatedParty A list of related parties (RelatedParty [*]). A list of related party references
(RelatedParty [*]). A related party defines party or party role linked to a specific
entity.
state A service state type (ServiceStateType). The life cycle state of the service, such as:
[feasibilityChecked], [designed].
Characteristic sub-resource
DataAccessEndpoint sub-resource
category A string. Category of the concrete resource, such as: Gold, Silver for MSISDN concrete
resource.
endDate A date time (DateTime). The date till the resource is effective.
startDate A date time (DateTime). A date time (DateTime). The date from which the resource is
effective.
value A string. The value of the logical resource, such as: 0044746712345 for an MSISDN.
version A string. A field that identifies the specific version of an instance of a resource.
apiType A string.
note A list of notes (Note [*]). Extra information about a given entity.
partyRole A list of party role references (PartyRoleRef [*]). A party role represents the part
played by a party in a given context.
place A place (Place). Place reference. Place defines the places where the products are sold
or delivered.
relatedParty A list of related parties (RelatedParty [*]). Related Entity reference. A related party
defines party or party role linked to a specific entity.
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).
Place sub-resource
Place reference. Place defines the places where the products are sold or delivered.
name A string. A user-friendly name for the place, such as [Paris Store], [London Store],
[Main Home].
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.
@referredType A string. The actual type of the target instance when needed for disambiguation.
ResourceCharacteristic sub-resource
ResourceRelationship sub-resource
ServiceRelationship sub-resource
Describes links with services of the same category (useful for bundled services).
TargetServiceSchema sub-resource
The reference object to the schema and type of target service which is described by service specification.
@schemaLocation A string. This field provides a link to the schema describing the target service.
PartyRoleRef relationship
Party role reference. A party role represents the part played by a party in a given context.
@referredType A string. The actual type of the target instance when needed for disambiguation.
partyId A string. The identifier of the engaged party that is linked to the PartyRole object.
partyName A string. The name of the engaged party that is linked to the PartyRole object.
ResourceRef relationship
Information about a resource that holds realizes the product that is linked to the bucket balance.
value A string. The resource value that can be used to identify a resource with a public key
(e.g.: a tel nr, an msisdn).
ServiceOrderRef relationship
Service Order reference. Useful to understand the which was the Service order through which the service was
instantiated in the service inventory.
@referredType A string. The actual type of the target instance when needed for disambiguation.
serviceOrderItemId A string. Unique identifier of the Service Order Item within a service order, not
populated if this is a reference to a service order.
ServiceRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
ServiceSpecificationRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
{
"description": "This IoT service provides the access to data generated by IoT sensors.",
"@type": "IoTDataService",
"@schemaLocation" : "https://www.mandint.org/IoTDataService.json",
"endDate": "2019-05-13T00:00",
"hasStarted": true,
"isServiceEnabled": true,
"isStateful": true,
"serviceDate": "2019-05-13T00:00",
"startDate": "2019-05-13T00:00",
"startMode": "1",
"category": "IoT Data Provider",
"href": "https://host:port/tmf-api/iotService/v1/iotService/8520",
"id": "8520",
"name": "IoT Data Service",
"serviceType": "IoTDataService",
"dataAccessEndPoint": [
{
"category": "Gold",
"description": "This is a temperature sensor using CoAP and 6LoWPAN.",
"endDate": "2019-05-13T00:00",
"href": "https://host:port/tmf-api/iotDevice/v1/iotDevice/temp_3",
"id": "3",
"lifecycleState": "InService",
"name": "temp_3",
"startDate": "2019-05-03T00:00",
"value": "0041227744222",
"version": "1.0",
"apiType": "NGSI",
"uri": "https://host:port/tmf-api/iotDevice/v1/iotDevice/temp_3/dataAccessEndpoint/3"
},
{
"category": "Gold",
"description": "This is a temperature sensor using CoAP and 6LoWPAN.",
"endDate": "2019-05-13T00:00",
"href": "https://host:port/tmf-api/iotDevice/v1/iotDevice/temp_4",
"id": "4",
"lifecycleState": "InService",
"name": "temp_4",
"startDate": "2019-05-03T00:00",
"value": "0041227744222",
"version": "1.0",
"apiType": "MQTT",
"uri": "https://host:port/tmf-api/iotDevice/v1/iotDevice/temp_4/dataAccessEndpoint/4"
© TM Forum 2020. All Rights Reserved. Page 18 of 161
IoT Service Management API User Guide
}
],
"note": [
{
"author": "Cedric Crettaz",
"date": "2019-05-13T00:00",
"id": "txt002",
"text": "This is an IoT service for temperature sensors."
}
],
"serviceOrder": [
{
"@referredType": "IoTDataService",
"href": " https://www.mandint.org/IoTDataServiceOrder",
"id": "85",
"serviceOrderItemId": "8520"
}
],
"place": [
{
"href": "Chemin du Champ-Baron 3",
"id": "1209",
"name": "Geneva Office"
}
],
"relatedParty": [
{
"@referredType": "temperatureSensor",
"href": "https://www.mandint.org/temperatureSensor",
"id": "CoapTempSensor",
"name": "Mandat International",
"role": "vendor"
}
],
"serviceCharacteristic": [
{
"name": "proxyIP",
"value": "2001:620:607:5110::31",
"valueType": "string"
}
],
"serviceRelationship": [
{
"relationshipType": "depends on",
"service": {
"@referredType": "5GSliceNaaS",
"href": " https://host:port/tmf-api/iotService/v1/iotService/8525",
"id": "8525",
"name": "5G Slice NaaS"
}
}
],
"serviceSpecification": {
"@referredType": "IoTDataService",
© TM Forum 2020. All Rights Reserved. Page 19 of 161
IoT Service Management API User Guide
"href": "https://www.mandint.org/serviceSpecification/IOTDataServiceSpecification",
"id": "501",
"name": "serviceSpec501",
"targetServiceSchema": {
"@schemaLocation": " https://www.mandint.org/serviceSpecification/IOTDataServiceSpecificationSchema.json",
"@type": "IoTDataService"
},
"version": "1.0.0"
},
"state": "active",
"supportingResource": [
{
"@Type": "IoTAgent",
"href": "https://www.mandint.org/IotDeviceMangementAPI/IoTAgent/building1",
"id": "iotAgent_1",
"name": "building_1",
"value": "0041227744222"
},
{
"@Type": "IoTAgent",
"href": "https://www.mandint.org/IotDeviceMangementAPI/IoTAgent/building2",
"id": "iotAgent_2",
"name": "building_2",
"value": "0041227744111"
}
],
"supportingService": [
{
"@referredType": "5GSliceNaaS",
"href": " https://host:port/tmf-api/iotService/v1/iotService/8525",
"id": "8525",
"name": "5G Slice NaaS"
}
]
}
A service catalog is a group of service specifications made available through service candidates that an organization
provides to the consumers (internal consumers like its employees or B2B customers or B2C customers).
A service catalog typically includes name, description and time period that is valid for. It will have a list of
ServiceCandidate catalog items. A ServiceCandidate is an entity that makes a ServiceSpecification available to a
catalog.
A ServiceCandidate and its associated ServiceSpecification may be "published" - made visible -in any number of
ServiceCatalogs, or in none.
Resource model
Field descriptions
ServiceCatalog fields
category A list of service category references (ServiceCategoryRef [*]). List of service categories
associated with this catalog.
lastUpdate A date time (DateTime). Date and time of the last update.
relatedParty A list of related parties (RelatedParty [*]). List of parties or party roles related to this
category.
validFor A time period. The period for which the service catalog is valid.
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.
@referredType A string. The actual type of the target instance when needed for disambiguation.
ServiceCategoryRef relationship
The (service) category resource is used to group service candidates in logical containers. Categories can contain
other categories.
@referredType A string. The actual type of the target instance when needed for disambiguation.
{
"category": [
{}
],
"description": "This service catalog ...",
"href": "https:/host:port/tmf-api/serviceCatalog/v1/serviceCatalog/3035",
"id": "3035",
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "a string ...",
"relatedParty": [
{}
],
"validFor": {},
"version": "a string ..."
}
Resource model
Field descriptions
ServiceCategory fields
category A list of service category references (ServiceCategoryRef [*]). List of child categories in
the tree for in this category.
isRoot A boolean. If true, this Boolean indicates that the category is a root of categories.
lastUpdate A date time (DateTime). Date and time of the last update.
validFor A time period. The period for which the category is valid.
ServiceCandidateRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
ServiceCategoryRef relationship
The (service) category resource is used to group service candidates in logical containers. Categories can contain
other categories.
@referredType A string. The actual type of the target instance when needed for disambiguation.
{
"category": [
{}
],
"description": "This service category ...",
"href": "https:/host:port/tmf-api/serviceCategory/v1/serviceCategory/6889",
"id": "6889",
"isRoot": false,
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "a string ...",
"parentId": "203",
"serviceCandidate": [
{}
],
"validFor": {},
"version": "a string ..."
}
Resource model
Field descriptions
ServiceCandidate fields
category A list of service category references (ServiceCategoryRef [*]). List of categories for this
candidate.
lastUpdate A date time (DateTime). Date and time of the last update of this REST resource.
lifecycleStatus A string. Used to indicate the current lifecycle status of the service candidate.
validFor A period of time. The period for which this REST resource is valid.
TargetServiceSchema sub-resource
The reference object to the schema and type of target service which is described by service specification.
@schemaLocation A string. This field provides a link to the schema describing the target service.
ServiceCategoryRef relationship
The (service) category resource is used to group service candidates in logical containers. Categories can contain
other categories.
@referredType A string. The actual type of the target instance when needed for disambiguation.
ServiceSpecificationRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
{
"category": [
{}
],
"description": "This service candidate ...",
"href": "https:/host:port/tmf-api/serviceCandidate/v1/serviceCandidate/9315",
"id": "9315",
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "a string ...",
"serviceSpecification": {},
"validFor": {},
"version": "a string ..."
}
Resource model
Field descriptions
ServiceQualification fields
estimatedResponseDate A date time (DateTime). Date when the requester expects to provide an answer
for the qualification request.
expectedQualificationDate A date time (DateTime). A date (DateTime). Deadline date when the requester
expected a qualification answer.
expirationDate A date time (DateTime). Date when the qualification response expires.
provideAlternative A boolean. When the value is TRUE means that alternative solutions should be
provided.
provideOnlyAvailable A boolean. When the value is TRUE means that only available service must be
listed in the response.
provideUnavailabilityReason A boolean. When the value is TRUE means that unavailability reason are expected
for non-available service.
qualificationResult A string. Qualification result for this serviceQualification. It could be: qualified (all
qualification item are qualified), alternate (At least one item alternate and no
item with unqualified), unqualified (At least one item unqualified).
relatedParty A list of related parties (RelatedParty [*]). A list of related party references,
defines party or party role linked to this request.
serviceQualificationDate A date time (DateTime). Date when the serviceQualification was submitted.
AlternateServiceProposal sub-resource
Alternate service proposal is used when the requested service is not available with characteristic and date asked
for. An alternate proposal could be a distinct serviceSpecification close to requested one or same as requested but
with a different activation date.
alternateServiceAvailabilityDate A date time (DateTime). Alternate availability date in case seller is not able to
meet requested expected availability date for the service.
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.
@referredType A string. The actual type of the target instance when needed for disambiguation.
ServiceEligibilityUnavailabilityReason sub-resource
Reason for eligibility result if the ServiceQualification result is no (meaning the Service is not available).
ServiceQualificationItem sub-resource
expectedActivationDate A date time (DateTime). The date when the service is expected to be
activated.
expectedServiceAvailabilityDate A date time (DateTime). Date when the requester looks for service availability.
expirationDate A date time (DateTime). Date when the qualification item response expires.
and not alternate available), - alternate (requested not available but proposal
available).
ServiceQualificationItemRelationship sub-resource
Structure used to describe relationship between serviceQualification items from the same serviceQualification.
ServiceQualificationRelationship sub-resource
TerminationError sub-resource
value A string. Text to describe the termination error - for example: Unable to proceed to
qualification because incomplete information provided.
ServiceCategoryRef relationship
The (service) category resource is used to group service candidates in logical containers. Categories can contain
other categories.
@referredType A string. The actual type of the target instance when needed for disambiguation.
{
"description": "This service qualification ...",
"effectiveQualificationDate": "2019-05-13T00:00",
"estimatedResponseDate": "2019-05-13T00:00",
"expectedQualificationDate": "2019-05-13T00:00",
"expirationDate": "2019-05-13T00:00",
"externalId": "506",
"href": "https:/host:port/tmf-api/serviceQualification/v1/serviceQualification/7775",
"id": "7775",
"provideAlternative": true,
"provideOnlyAvailable": true,
"provideUnavailabilityReason": true,
"qualificationResult": "a string ...",
"relatedParty": [
{}
],
"serviceQualificationDate": "2019-05-13T00:00",
"serviceQualificationItem": [
{}
],
"state": "a string ..."
}
Resource model
Field descriptions
ServiceProblem fields
affectedLocation A list of places (Place [*]). A list of the locations affected by the problem. At least
one of affectedResource, affectedService or affectedLocation should be present.
affectedResource A list of resource references (ResourceRef [*]). A list of the resources affected by
the problem. At least one of affectedResource, affectedService or affectedLocation
should be present.
affectedService A list of service references (ServiceRef [*]). List of affected services. At least one of
affectedResource, affectedService or affectedLocation should be present.
associatedTroubleTicket A list of trouble ticket references (TroubleTicketRef [*]). A list of trouble tickets
associated with this problem.
category A string. Classifier for the problem. Settable. For example, this is used for
distinguishing the category of problem originator in [role].[category] format.
Example: serviceProvider.declarer, supplier.originated, system.originated.
comment A list of notes (Note [*]). A list of comments or notes made on the problem.
extensionInfo A list of characteristics (Characteristic [*]). A generic list of any type of elements.
Used for vendor Extensions or loose element encapsulation from other
namespaces.
firstAlert A related entity reference (RelatedEntityRef). Indicates what first alerted the
system to the problem. It is not the root cause of the Service Problem. Examples:
Threshold crossing alert.
impactPatterns An impact pattern (ImpactPattern). Define the patterns of impact (optional)- e.g.
other service characteristics- Used when defining impact through another pattern
than the predefined attributes.
originatorParty A related party (RelatedParty). Individual or organization that created the problem.
parentProblem A list of service problem references (ServiceProblemRef [*]). The parent problem to
which this problem is attached.
problemEscalation A string. Indicates if this service problem has been escalated or not. Possible values
are 0 to 10. A value of zero means no escalation. The meanings of values 1-10 are
to be determined by the user of the interface, but they show increasing levels of
escalation.
relatedEvent A list of event references (EventRef [*]). List of events associated to this problem.
relatedObject A list of related entity references (RelatedEntityRef [*]). List of objects associated to
this problem.
relatedParty A list of related parties (RelatedParty [*]). List of parties or party roles playing a role
within the service problem.
rootCauseResource A list of resource references (ResourceRef [*]). Resource(s) that are associated to
the underlying service problems that are the Root Cause of this one if any (used
only if applicable).
rootCauseService A list of service references (ServiceRef [*]). Service(s) that are associated to the
underlying service problems that are the Root Cause of this one if any (used only if
applicable).
status A string. The current status of the service problem. Possible values are Submitted,
Rejected, Acknowledged, In Progress [Held, Pending], Resolved, Closed, and
Cancelled.
statusChangeDate A date time (DateTime). Time the problem was last status changed.
timeChanged A date time (DateTime). Time the problem was last changed.
trackingRecord A list of tracking records (TrackingRecord [*]). List of tracking records that allow the
tracking of modifications on the problem. The tracking records should not be
embedded in the problem to allow retrieving the problem without the tracking
records.
Characteristic sub-resource
ImpactPattern sub-resource
Define the patterns of impact (optional), such as other service characteristics- Used when defining impact through
another pattern than the pre-defined attributes.
extensionInfo A list of characteristics (Characteristic [*]). A generic list of any type of elements. Used
for extensions or loose element encapsulation from other namespaces.
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).
Place sub-resource
Place reference. Place defines the places where the products are sold or delivered.
name A string. A user-friendly name for the place, such as [Paris Store], [London Store],
[Main Home].
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.
@referredType A string. The actual type of the target instance when needed for disambiguation.
TrackingRecord sub-resource
Tracking records allow the tracking of modifications on the problem. The tracking records should not be embedded
in the problem to allow retrieving the problem without the tracking records.
description A string. Describes the action being done, such as: ack, clear.
extensionInfo A list of characteristics (Characteristic [*]). A generic list of any type of elements. Used
for vendor Extensions or loose element encapsulation from other namespaces.
systemId A string. Describes the system Id from which the action was done.
time A date time (DateTime). Describes the time at which the action was done.
ChangeRequestRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
EventRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
RelatedEntityRef relationship
A reference to an entity, where the type of the entity is not known in advance.
@referredType A string. The actual type of the target instance when needed for disambiguation.
ResourceAlarmRef relationship
A set of alarm ids identifying the alarms that are underlying this problem.
@referredType A string. The actual type of the target instance when needed for disambiguation.
ResourceRef relationship
Information about a resource that holds realizes the product that is linked to the bucket balance.
value A string. The resource value that can be used to identify a resource with a public key
(e.g.: a tel nr, an msisdn).
SLAViolationRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
href A string.
id A string.
ServiceProblemRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
ServiceRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
TroubleTicketRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
{
"affectedLocation": [
{}
],
"affectedNumberOfServices": 69,
"affectedResource": [
{}
],
"affectedService": [
{}
],
"associatedSLAViolation": [
{}
],
"associatedTroubleTicket": [
{}
],
"category": "a string ...",
"comment": [
© TM Forum 2020. All Rights Reserved. Page 41 of 161
IoT Service Management API User Guide
{}
],
"correlationId": "305",
"description": "This service problem ...",
"extensionInfo": [
{}
],
"firstAlert": {},
"href": "https:/host:port/tmf-api/serviceProblem/v1/serviceProblem/8561",
"id": "8561",
"impactImportanceFactor": "a string ...",
"impactPatterns": {},
"originatingSystem": "a string ...",
"originatorParty": {},
"parentProblem": [
{}
],
"priority": 51,
"problemEscalation": "a string ...",
"reason": "a string ...",
"relatedEvent": [
{}
],
"relatedObject": [
{}
],
"relatedParty": [
{}
],
"resolutionDate": "2019-05-13T00:00",
"responsibleParty": {},
"rootCauseResource": [
{}
],
"rootCauseService": [
{}
],
"status": "a string ...",
"statusChangeDate": "2019-05-13T00:00",
"statusChangeReason": "a string ...",
"timeChanged": "2019-05-13T00:00",
"timeRaised": "2019-05-13T00:00",
"trackingRecord": [
{}
],
"underlyingAlarm": [
{}
],
"underlyingProblem": [
{}
]
}
Resource model
Field descriptions
IotServiceSpecification fields
description A string. A narrative that explains in detail what the service specification is.
lastUpdate A date time (DateTime). Date and time of the last update of the service specification.
lifecycleStatus A string. Used to indicate the current lifecycle status of the service specification.
relatedParty A list of related parties (RelatedParty [*]). A list of related party references
(RelatedParty [*]). A related party defines party or party role linked to a specific
entity.
validFor A period of time. The period for which the service specification is valid.
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.
@referredType A string. The actual type of the target instance when needed for disambiguation.
ServiceSpecCharRelationship sub-resource
validFor A time period. The period for which the serviceSpecCharRelationship is valid.
ServiceSpecCharacteristic sub-resource
This class represents the key features of this service specification. For example, bandwidth is a characteristic of
many different types of services; if bandwidth is a relevant characteristic (e.g., from the point-of-view of a
Customer obtaining this Service via a Product) then bandwidth would be a ServiceSpecCharacteristic for that
particular Service.
@valueSchemaLocation A string. This (optional) field provides a link to the schema describing the value
type.
extensible A boolean. An indicator that specifies that the values for the characteristic can
be extended by adding new values when instantiating a characteristic for an
Entity.
isUnique A boolean. An indicator that specifies if a value is unique for the specification.
Possible values are; "unique while value is in effect" and "unique whether value
is in effect or not".
regex A string. A rule or principle represented in regular expression used to derive the
value of a characteristic value.
validFor A time period. The period for which the serviceSpecCharacteristic is valid.
valueType A string. A kind of value that the characteristic can take on, such as numeric,
text and so forth.
ServiceSpecCharacteristicValue sub-resource
A ServiceSpecCharacteristicValue object is used to define a set of attributes, each of which can be assigned to a
corresponding set of attributes in a ServiceSpecCharacteristic object. The values of the attributes in the
ServiceSpecCharacteristicValue object describe the values of the attributes that a corresponding
ServiceSpecCharacteristic object can take on.
isDefault A boolean. Indicates if the value is the default value for a characteristic.
rangeInterval A string. An indicator that specifies the inclusion or exclusion of the valueFrom and
valueTo attributes. If applicable, possible values are "open", "closed", "closedBottom"
and "closedTop".
unitOfMeasure A string. A length, surface, volume, dry measure, liquid measure, money, weight,
time, and the like. In general, a determinate quantity or magnitude of the kind
designated, taken as a standard of comparison for others of the same kind, in
assigning to them numerical values, as 1 foot, 1 yard, 1 mile, 1 square foot.
validFor A time period. The period of time for which a value is applicable.
value An any (Any). A discrete value that the characteristic can take on, or the actual value
of the characteristic.
valueFrom An integer. The low range value that a characteristic can take on.
valueTo An integer. The upper range value that a characteristic can take on.
valueType A string. A kind of value that the characteristic can take on, such as numeric, text, and
so forth.
ServiceSpecRelationship sub-resource
name A string. The name given to the target service specification instance.
validFor A period of time. The period for which the serviceSpecRelationship is valid.
TargetServiceSchema sub-resource
The reference object to the schema and type of target service which is described by service specification.
@schemaLocation A string. This field provides a link to the schema describing the target service.
AttachmentRef relationship
Attachment reference. An attachment complements the description of an element (for instance a product) through
video, pictures.
@referredType A string. The actual type of the target instance when needed for disambiguation.
ResourceSpecificationRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
ServiceLevelSpecificationRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
{
"description": "This IoT service specification describes the access to data generated by IoT sensors.",
"href": "https://host:port/tmf-api/iotServiceSpecification/v1/iotServiceSpecification/4530",
"id": "4530",
"isBundle": true,
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "InService",
"name": "IoT Data Service Specification",
"version": "1.0.0",
"attachment": [
{}
],
"relatedParty": [
{
"@referredType": "temperatureSensor",
"href": "https://www.mandint.org/temperatureSensor",
"id": "CoapTempSensor",
"name": "Mandat International",
"role": "vendor"
}
],
"resourceSpecification": [
{
"@referredType": "IoTDataService",
"href": "https://www.mandint.org/serviceSpecification/IOTDataServiceSpecification",
"id": "501",
"name": "serviceSpec501",
"version": "1.0.0"
}
],
"serviceLevelSpecification": [
{
"@referredType": "IoTDataService",
"href": "https://www.mandint.org/serviceLevelSpecification/IoTDataServiceLevelSpecification",
"id": "601",
"name": "serviceLevelSpec602"
}
],
"serviceSpecCharacteristic": [
{
"isDefault": true,
"rangeInterval": "open",
"regex": "",
"unitOfMeasure": "degrees Celsius",
"validFor": {
"startPeriod": "2019-08-21T11:45:00+02:00",
"endPeriod": "2019-12-21T11:45:00+2:00"
},
"value": 20.0,
"valueFrom": -273.15,
"valueTo": 10000,
"valueType": "numeric"
}
],
"serviceSpecRelationship": [
{
"href": "https://www.mandint.org/serviceSpecification/IOTDataServiceSpecification",
"id": "501",
"name": "serviceSpec501",
"relationshipType": "substitution",
"role": "vendor",
"validFor": {
"startPeriod": "2019-08-21T11:45:00+02:00",
"endPeriod": "2019-12-21T11:45:00+2:00"
}
}
],
"targetServiceSchema": {
"@schemaLocation": " https://www.mandint.org/serviceSpecification/IOTDataServiceSpecificationSchema.json",
"@type": "IoTDataService"
},
"validFor": {
"startPeriod": "2019-08-21T11:45:00+02:00",
"endPeriod": "2019-12-21T11:45:00+2:00"
}
}
Resource model
Field descriptions
ServiceTest fields
characteristic A list of characteristics (Characteristic [*]). List of characteristics with values that
define the test run.
endDateTime A date time (DateTime). The end date and time of the service test.
startDateTime A date time (DateTime). The start date and time of the service test.
testMeasure A list of test measures (TestMeasure [*]). The results of the test in terms of the
measured metrics.
AppliedConsequence sub-resource
An Applied Consequence defines the action (prescribed action or notification) to take when a
MeasureThresholdRuleViolation occurs.
appliedAction A string. The action for a violated threshold. This could be a hyperlink to
the action.
description A string. A narrative that explains in detail what the consequence is.
consequence is applied only if the previous MetricMeasure value was not in the same
range.
Characteristic sub-resource
Duration sub-resource
MeasureThresholdRuleViolation sub-resource
TestMeasure sub-resource
A TestMeasure specifies a measure of a specific aspect of a product, service, or resource test, such as lost packets
or connectivity status.
accuracy A float. The number of digits of accuracy captured for associated Metrics.
captureDateTime A date time (DateTime). The date and time that the metric was captured.
captureMethod A string. The method used to capture the Metrics (This may be replaced by a set of
entities similar to the Performance Monitoring Ref).
unitOfMeasure A string. The unit of measure for the metric values, such as meters, cubic yards,
kilograms [ISO 1000].
value A characteristic (Characteristic). The value of Metric in the test. This also could be a
document to record all values captured during the service test.
ServiceRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
ServiceTestSpecificationRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
{
"characteristic": [
{}
],
"description": "This service test ...",
"endDateTime": "2019-05-13T00:00",
"href": "https:/host:port/tmf-api/serviceTest/v1/serviceTest/1983",
"id": "1983",
"mode": "a string ...",
"name": "a string ...",
"relatedService": {},
"startDateTime": "2019-05-13T00:00",
"state": "a string ...",
"testMeasure": [
{}
],
"testSpecification": {}
}
Resource model
Field descriptions
ServiceTestSpecification fields
validFor A period of time. The period of time for which this specification is valid.
Duration sub-resource
MetricDefMeasureConsequence sub-resource
description A string. A narrative that explains in detail what the consequence is.
MetricDefMeasureThresholdRule sub-resource
A MetricDefMeasureThresholdRule is a rule that defines the condition (raise or clear) to achieve to apply
consequences when a threshold is crossed or ceased to be crossed. It also defines the severity of the
raise or clear of the threshold.
TargetServiceSchema sub-resource
The reference object to the schema and type of target service which is described by service specification.
@schemaLocation A string. This field provides a link to the schema describing the target service.
TestMeasureDefinition sub-resource
A TestMeasureDefinition specifies a measure of a specific aspect of a product, service, or resource test, such as lost
packets or connectivity status.
captureFrequency A string. The frequency of capture for the metric. Note: This may be replaced by a set
of entities similar to the Performance Monitoring.
captureMethod A string. The method used to capture the Metric. Note: This may be replaced by a set
of entities similar to the Performance Monitoring.
validFor A time period. The time period for which this definition is valid.
valueType A string. A kind of value that the Metric value can take on, such as numeric, text, and
so forth.
ServiceSpecificationRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
{
"description": "This service test specification ...",
"href": "https:/host:port/tmf-api/serviceTestSpecification/v1/serviceTestSpecification/8023",
"id": "8023",
"name": "a string ...",
"relatedServiceSpecification": {},
"testMeasureDefinition": [
{}
],
"validFor": {},
"version": "a string ..."
}
Resource model
Field descriptions
UsageConsumptionReportRequest fields
creationDate A date time (DateTime). Date and time of the request creation.
id A string. Unique identifier of the usage consumption report request given by the
server.
lastUpdate A date time (DateTime). Date when the status was last changed.
relatedParty A list of related parties (RelatedParty [*]). Reference and role of the related parties
for which the usage consumption report is requested.
status A string. Status of the usage consumption report request (InProgress or done).
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.
@referredType A string. The actual type of the target instance when needed for disambiguation.
NetworkProductRef relationship
Reference of a product.
@referredType A string. Generic attribute indicating the name of the class type of the referred
resource entity.
publicIdentifier A string. Public number associated to the product (msisdn number for mobile line for
example).
UsageConsumptionReportRef relationship
description A string. Free short text describing the usage consumption report content.
effectiveDate A date time (DateTime). Date and time when the usage consumption report was
calculated and generated.
id A string. Unique identifier of the usage consumption report given by the server.
UsageVolumeProductRef relationship
Reference of a bucket.
@referredType A string. Generic attribute indicating the name of the class type of the referred
resource entity.
{
"bucket": [
{}
],
"creationDate": "2019-05-13T00:00",
"href": "https:/host:port/tmf-api/usageConsumptionReportRequest/v1/usageConsumptionReportRequest/4925",
"id": "4925",
"lastUpdate": "2019-05-13T00:00",
"product": {},
"relatedParty": [
{}
],
"status": "a string ...",
"usageConsumptionReport": {},
"validPeriod": {}
}
User resource
Generic User structure used to define commonalities between sub concepts of PartyUser and Financial User.
Resource model
Field descriptions
User fields
description A string.
{
"description": "This user ..."
}
Resource model
Field descriptions
UsageConsumptionReport fields
bucket A list of usage volume products (UsageVolumeProduct [*]). Bucket(s) included in the
offer or option subscribed.
description A string. Free short text describing the usage consumption report content.
effectiveDate A date time (DateTime). Date and time when the usage consumption report was
calculated and generated.
href A string. Hyperlink to access the usage consumption report. The report is calculated at
the time of the request by the server. Generally, this report is not recorded by the
server. If it is, a unique identifier of the usage consumption report is given by the
server.
id A string. The report is calculated at the time of the request by the server. Generally,
this report is not recorded by the server. If it is, a unique identifier of the usage
consumption report is given by the server.
relatedParty A related party (RelatedParty). Related Entity reference. A related party defines party
or party role linked to a specific entity.
ConsumptionSummary sub-resource
The consumption counters (called ConsumptionSummary in the SID model) detail for example the different kind of
consumption done on the bucket.
consumptionPeriod A period of time. Consumption counter period between a start date time and an end
date time. For prepaid bucket, the period of counters is between the start date of the
bucket and the effective date of the usage consumption report generation. For
postpaid bucket, the period of counters is between the last bill date and the effective
date of the usage consumption report generation.
counterType A string. Type of the consumption counter. We can give for example a counter of the
used value for a bucket (counterType=used for example) or the value of the
consumption done out of the bucket(s) (counterType=outOfBucket for example).
level A string. Counter level. The counter can be given globally for the bucket or detailed by
user or by network product for example in case of shared bucket.
global (i.e. concerning all the network products), the list of them is not specified. It
can be found through the network products listed in the bucket sub-resource.
user A related party (RelatedParty). Reference of the user for which the consumption
counter is detailed. If the level of the counter is global (i.e. concerning all the users),
the list of them is not specified. It can be found through the users listed in the
network products of the bucket sub-resource.
value A quantity (Quantity). Numeric value of the bucket counter in a given unit.
valueName A string. Value of the counter in a formatted string used for display needs for
example.
NetworkProduct sub-resource
publicIdentifier A string. Public number associated to the network product (msisdn number for mobile
line for example).
user A list of related parties (RelatedParty [*]). References of the users of the network
product.
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.
@referredType A string. The actual type of the target instance when needed for disambiguation.
UsageVolumeBalance sub-resource
The balance (called UsageVolumeBalance in the SID model) defines the remaining allowed product usage quantity
in terms of volume, time, currency or events. It corresponds to the initial allowed usage quantity minus the usage
consumed on the bucket.
remainingValue A quantity (Quantity). Numeric remaining value for the bucket given in the unit (for
example 1.9). This numeric value could be used for calculation for example.
remainingValueName A string. Remaining value in a formatted string for the bucket given in the balance unit
(for example 1.9 Gb). This formatted string could be used for display needs for
example.
validFor A time period. Balance period between a start date time and an end date time. For
prepaid bucket, the period of the balance is between the effective date of the usage
consumption report generation and the end date of the bucket. For postpaid bucket,
the period of the balance is between the effective date of the usage consumption
report generation and the next bill date.
UsageVolumeProduct sub-resource
A bucket (called UsageVolumeProduct in the SID model) represents a quantity of usage, as 2 hours national calls or
50 sms for example. It could be either a quantity or an amount in a currency (i.e. It could represent a fixed number
of SMS, MMS, minutes of calls, quantity of data, number of events as well as a specific amount in a given currency).
It requires one or more network products from which usages will debit the bucket.
bucketBalance A list of usage volume balances (UsageVolumeBalance [*]). The balance (called
UsageVolumeBalance in the SID model) defines the remaining allowed product usage
quantity in terms of volume, time, currency or events. It corresponds to the initial
allowed usage quantity minus the usage consumed on the bucket.
isShared A boolean. True if the bucket is shared between several devices or users.
usageType A string. Type of usage concerned by the bucket, such as voice, sms, data.
NetworkProductRef relationship
Reference of a product.
@referredType A string. Generic attribute indicating the name of the class type of the referred
resource entity.
publicIdentifier A string. Public number associated to the product (msisdn number for mobile line for
example).
{
"bucket": [
{}
],
"description": "This usage consumption report ...",
"effectiveDate": "2019-05-13T00:00",
"href": "https:/host:port/tmf-api/usageConsumptionReport/v1/usageConsumptionReport/8486",
"id": "8486",
"name": "a string ...",
"relatedParty": {}
}
Resource model
Field descriptions
ImportJob fields
completionDate A date time (DateTime). Date at which the job was completed.
creationDate A date time (DateTime). Date at which the job was created.
path A string. URL of the root resource where the content of the file specified by the
import job must be applied.
status A string. Status of the import job (not started, running, succeeded, failed).
{
"completionDate": "2019-05-13T00:00",
"contentType": "a string ...",
"creationDate": "2019-05-13T00:00",
"errorLog": "a string ...",
"href": "https:/host:port/tmf-api/importJob/v1/importJob/4640",
"id": "4640",
"path": "a string ...",
Resource model
Field descriptions
ExportJob fields
completionDate A date time (DateTime). Data at which the job was completed.
creationDate A date time (DateTime). Date at which the job was created.
path A string. URL of the root resource acting as the source for streaming content to the
file specified by the export job.
status A string. Status of the export job (not started, running, succeeded, failed).
{
"completionDate": "2019-05-13T00:00",
"contentType": "a string ...",
"creationDate": "2019-05-13T00:00",
"errorLog": "a string ...",
"href": "https:/host:port/tmf-api/exportJob/v1/exportJob/1721",
"id": "1721",
"path": "a string ...",
"query": "a string ...",
"status": "a string ...",
"url": "a string ..."
}
- ServiceQualificationChangeEvent
- ServiceQualificationDeleteEvent
The notification structure for all notifications in this API follow the pattern depicted by the figure below.
A notification resource (depicted by "SpecificNotification" placeholder) is a sub class of a generic Notification
structure containing an id of the event occurrence (eventId), an event timestamp (eventTime), and the name of the
notification resource (eventType).
This notification structure owns an event structure ("SpecificEvent" placeholder) linked to the resource concerned
by the notification using the resource name as access field ("resourceName" placeholder).
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"IotServiceIotServiceCreateEventNotification",
"event": {
"iotService" :
{-- SEE IotService RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"IotServiceIotServiceAttributeValueChangeEventNotification",
"event": {
"iotService" :
{-- SEE IotService RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"IotServiceIotServiceStateChangeEventNotification",
"event": {
"iotService" :
{-- SEE IotService RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"IotServiceIotServiceBatchEventNotification",
"event": {
"iotService" :
{-- SEE IotService RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"IotServiceIotServiceDeleteEventNotification",
"event": {
"iotService" :
{-- SEE IotService RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceCatalogServiceCatalogCreateEventNotification",
"event": {
"serviceCatalog" :
{-- SEE ServiceCatalog RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceCatalogServiceCatalogChangeEventNotification",
"event": {
"serviceCatalog" :
{-- SEE ServiceCatalog RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceCatalogServiceCatalogBatchEventNotification",
"event": {
"serviceCatalog" :
{-- SEE ServiceCatalog RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceCatalogServiceCatalogDeleteEventNotification",
"event": {
"serviceCatalog" :
{-- SEE ServiceCatalog RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceCategoryServiceCategoryCreateEventNotification",
"event": {
"serviceCategory" :
{-- SEE ServiceCategory RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceCategoryServiceCategoryChangeEventNotification",
"event": {
"serviceCategory" :
{-- SEE ServiceCategory RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceCategoryServiceCategoryDeleteEventNotification",
"event": {
"serviceCategory" :
{-- SEE ServiceCategory RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceCandidateServiceCandidateCreateEventNotification",
"event": {
"serviceCandidate" :
{-- SEE ServiceCandidate RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceCandidateServiceCandidateChangeEventNotification",
"event": {
"serviceCandidate" :
{-- SEE ServiceCandidate RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceCandidateServiceCandidateDeleteEventNotification",
"event": {
"serviceCandidate" :
{-- SEE ServiceCandidate RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceQualificationServiceQualificationCreateEventNotification",
"event": {
"serviceQualification" :
{-- SEE ServiceQualification RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceQualificationServiceQualificationChangeEventNotification",
"event": {
"serviceQualification" :
{-- SEE ServiceQualification RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceQualificationServiceQualificationDeleteEventNotification",
"event": {
"serviceQualification" :
{-- SEE ServiceQualification RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceProblemServiceProblemCreateEventNotification",
"event": {
"serviceProblem" :
{-- SEE ServiceProblem RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceProblemServiceProblemStateChangeEventNotification",
"event": {
"serviceProblem" :
{-- SEE ServiceProblem RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceProblemServiceProblemAttributeValueChangeEventNotification",
"event": {
"serviceProblem" :
{-- SEE ServiceProblem RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceProblemServiceProblemInformationRequiredEventNotification",
"event": {
"serviceProblem" :
{-- SEE ServiceProblem RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"IotServiceSpecificationIotServiceSpecificationCreateEventNotification",
"event": {
"iotServiceSpecification" :
{-- SEE IotServiceSpecification RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"IotServiceSpecificationIotServiceSpecificationChangeEventNotification",
"event": {
"iotServiceSpecification" :
{-- SEE IotServiceSpecification RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"IotServiceSpecificationIotServiceSpecificationDeleteEventNotification",
"event": {
"iotServiceSpecification" :
{-- SEE IotServiceSpecification RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceTestServiceTestCreateEventNotification",
"event": {
"serviceTest" :
{-- SEE ServiceTest RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceTestServiceTestAttributeValueChangeEventNotification",
"event": {
"serviceTest" :
{-- SEE ServiceTest RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceTestServiceTestDeleteEventNotification",
"event": {
"serviceTest" :
{-- SEE ServiceTest RESOURCE SAMPLE --}
}
}
Service Test Specification Service Test Spe cification Create Event Notification
Notification ServiceTestSpecificationCreateEvent case for resource ServiceTestSpecification
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceTestSpecificationServiceTestSpecificationCreateEventNotification",
"event": {
"serviceTestSpecification" :
{-- SEE ServiceTestSpecification RESOURCE SAMPLE --}
}
}
Service Test Specification Service Test Specification Attribute Value Change Event
Notification
Notification ServiceTestSpecificationAttributeValueChangeEvent case for resource ServiceTestSpecification
{
"eventId":"00001",
© TM Forum 2020. All Rights Reserved. Page 85 of 161
IoT Service Management API User Guide
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceTestSpecificationServiceTestSpecificationAttributeValueChangeEventNotification",
"event": {
"serviceTestSpecification" :
{-- SEE ServiceTestSpecification RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"ServiceTestSpecificationServiceTestSpecificationDeleteEventNotification",
"event": {
"serviceTestSpecification" :
{-- SEE ServiceTestSpecification RESOURCE SAMPLE --}
}
}
Usage Consumption Report Request Usage Consum ption Report Request State Change
Event Notification
Notification UsageConsumptionReportRequestStateChangeEvent case for resource
UsageConsumptionReportRequest
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"UsageConsumptionReportRequestUsageConsumptionReportRequestStateChangeEventNotification",
"event": {
"usageConsumptionReportRequest" :
{-- SEE UsageConsumptionReportRequest RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"UserUserCreateEventNotification",
"event": {
"user" :
{-- SEE User RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"UserUserChangeEventNotification",
"event": {
"user" :
{-- SEE User RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"UserUserDeleteEventNotification",
"event": {
"user" :
© TM Forum 2020. All Rights Reserved. Page 87 of 161
IoT Service Management API User Guide
API OPERATIONS
Remember the following Uniform Contract:
Other Request Methods POST on TASK Resource GET and POST must not be
used to tunnel other request
methods.
Filtering and attribute selection rules are described in the TMF REST Design Guidelines.
GET /iotService?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/iotService
Accept: application/json
Response
200
[
{
"description": "This iot service ...",
"endDate": "2019-05-13T00:00",
"hasStarted": true,
"isServiceEnabled": true,
"isStateful": true,
"serviceDate": "a string ...",
"startDate": "2019-05-13T00:00",
"startMode": "a string ...",
"category": "a string ...",
"href": "https:/host:port/tmf-api/iotService/v1/iotService/8520",
"id": "8520",
"name": "a string ...",
"serviceType": "a string ...",
"dataAccessEndPoint": {},
"note": [
{}
],
"serviceOrder": [
{}
],
© TM Forum 2020. All Rights Reserved. Page 90 of 161
IoT Service Management API User Guide
"place": [
{}
],
"relatedParty": [
{}
],
"serviceCharacteristic": [
{}
],
"serviceRelationship": [
{}
],
"serviceSpecification": {},
"state": {},
"supportingResource": [
{}
],
"supportingService": [
{}
]
}
]
GET /iotService/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/iotService/8520
Accept: application/json
Response
200
{
"description": "This iot service ...",
"endDate": "2019-05-13T00:00",
"hasStarted": true,
"isServiceEnabled": true,
"isStateful": true,
"serviceDate": "a string ...",
"startDate": "2019-05-13T00:00",
"startMode": "a string ...",
"category": "a string ...",
"href": "https:/host:port/tmf-api/iotService/v1/iotService/8520",
"id": "8520",
"name": "a string ...",
"serviceType": "a string ...",
"dataAccessEndPoint": {},
"note": [
{}
],
"serviceOrder": [
{}
],
"place": [
{}
],
"relatedParty": [
{}
],
"serviceCharacteristic": [
{}
],
"serviceRelationship": [
{}
],
"serviceSpecification": {},
"state": {},
"supportingResource": [
{}
],
"supportingService": [
{}
]
}
POST /iotService
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating an IotService,
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 an IotService resource. In this example the request only passes
mandatory attributes.
Request
POST {apiRoot}/iotService
Content-Type: application/json
{
"state": {}
}
Response
201
{
"href": "https:/host:port/tmf-api/iotService/v1/iotService/8520",
"id": "8520",
"state": {}
}
PATCH /iotService/{id}
Description
This operation allows partial updates of an iot service entity. Support of json/merge
(https://tools.ietf.org/html/rfc7386) is mandatory, support of json/patch (http://tools.ietf.org/html/rfc5789) is
optional.
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
Request
PATCH {apiRoot}/iotService/8520
Content-Type: application/merge-patch+json
{
"name": "new name"
}
Response
200
{
"description": "This iot service ...",
"endDate": "2019-05-13T00:00",
"hasStarted": true,
"isServiceEnabled": true,
"isStateful": true,
"serviceDate": "a string ...",
"startDate": "2019-05-13T00:00",
"startMode": "a string ...",
"category": "a string ...",
"href": "https:/host:port/tmf-api/iotService/v1/iotService/8520",
"id": "8520",
"name": "new name",
"serviceType": "a string ...",
"dataAccessEndPoint": {},
"note": [
{}
],
"serviceOrder": [
© TM Forum 2020. All Rights Reserved. Page 95 of 161
IoT Service Management API User Guide
{}
],
"place": [
{}
],
"relatedParty": [
{}
],
"serviceCharacteristic": [
{}
],
"serviceRelationship": [
{}
],
"serviceSpecification": {},
"state": {},
"supportingResource": [
{}
],
"supportingService": [
{}
]
}
DELETE /iotService/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/iotService/42
Response
204
GET /serviceCatalog?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceCatalog
Accept: application/json
Response
200
[
{
"category": [
{}
],
"description": "This service catalog ...",
"href": "https:/host:port/tmf-api/serviceCatalog/v1/serviceCatalog/3035",
"id": "3035",
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "a string ...",
"relatedParty": [
{}
],
"validFor": {},
"version": "a string ..."
}
]
GET /serviceCatalog/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceCatalog/3035
Accept: application/json
Response
200
{
"category": [
{}
],
"description": "This service catalog ...",
"href": "https:/host:port/tmf-api/serviceCatalog/v1/serviceCatalog/3035",
"id": "3035",
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "a string ...",
"relatedParty": [
{}
],
"validFor": {},
"version": "a string ..."
}
POST /serviceCatalog
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating a ServiceCatalog,
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 ServiceCatalog resource. In this example the request only passes
mandatory attributes.
Request
POST {apiRoot}/serviceCatalog
Content-Type: application/json
{
"name": "a string ..."
}
Response
201
{
"href": "https:/host:port/tmf-api/serviceCatalog/v1/serviceCatalog/3035",
"id": "3035",
"name": "a string ..."
}
PATCH /serviceCatalog/{id}
Description
This operation allows partial updates of a service catalog entity. Support of json/merge
(https://tools.ietf.org/html/rfc7386) is mandatory, support of json/patch (http://tools.ietf.org/html/rfc5789) is
optional.
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
Request
PATCH {apiRoot}/serviceCatalog/3035
Content-Type: application/merge-patch+json
{
"name": "new name"
}
Response
200
{
"category": [
{}
],
"description": "This service catalog ...",
"href": "https:/host:port/tmf-api/serviceCatalog/v1/serviceCatalog/3035",
"id": "3035",
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "new name",
"relatedParty": [
{}
],
"validFor": {},
"version": "a string ..."
}
DELETE /serviceCatalog/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/serviceCatalog/42
Response
204
GET /serviceCategory?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceCategory
Accept: application/json
Response
200
[
{
"category": [
{}
],
"description": "This service category ...",
"href": "https:/host:port/tmf-api/serviceCategory/v1/serviceCategory/6889",
"id": "6889",
"isRoot": false,
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "a string ...",
"parentId": "203",
"serviceCandidate": [
{}
],
"validFor": {},
"version": "a string ..."
}
]
GET /serviceCategory/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceCategory/6889
Accept: application/json
Response
200
{
"category": [
{}
],
"description": "This service category ...",
"href": "https:/host:port/tmf-api/serviceCategory/v1/serviceCategory/6889",
"id": "6889",
"isRoot": false,
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "a string ...",
"parentId": "203",
"serviceCandidate": [
{}
],
"validFor": {},
"version": "a string ..."
}
POST /serviceCategory
© TM Forum 2020. All Rights Reserved. Page 103 of 161
IoT Service Management API User Guide
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating a ServiceCategory,
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 ServiceCategory resource. In this example the request only passes
mandatory attributes.
Request
POST {apiRoot}/serviceCategory
Content-Type: application/json
{
"name": "a string ..."
}
Response
201
{
"href": "https:/host:port/tmf-api/serviceCategory/v1/serviceCategory/6889",
"id": "6889",
PATCH /serviceCategory/{id}
Description
This operation allows partial updates of a service category entity. Support of json/merge
(https://tools.ietf.org/html/rfc7386) is mandatory, support of json/patch (http://tools.ietf.org/html/rfc5789) is
optional.
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
Request
PATCH {apiRoot}/serviceCategory/6889
Content-Type: application/merge-patch+json
{
"name": "new name"
}
Response
200
{
"category": [
{}
],
"description": "This service category ...",
"href": "https:/host:port/tmf-api/serviceCategory/v1/serviceCategory/6889",
"id": "6889",
"isRoot": false,
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "new name",
"parentId": "203",
"serviceCandidate": [
{}
],
"validFor": {},
"version": "a string ..."
}
DELETE /serviceCategory/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/serviceCategory/42
Response
204
GET /serviceCandidate?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceCandidate
Accept: application/json
Response
200
[
{
"category": [
{}
],
"description": "This service candidate ...",
"href": "https:/host:port/tmf-api/serviceCandidate/v1/serviceCandidate/9315",
"id": "9315",
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "a string ...",
"serviceSpecification": {},
"validFor": {},
"version": "a string ..."
}
]
GET /serviceCandidate/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceCandidate/9315
Accept: application/json
Response
200
{
"category": [
{}
],
"description": "This service candidate ...",
"href": "https:/host:port/tmf-api/serviceCandidate/v1/serviceCandidate/9315",
"id": "9315",
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "a string ...",
"serviceSpecification": {},
"validFor": {},
"version": "a string ..."
}
POST /serviceCandidate
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating a
ServiceCandidate, 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 ServiceCandidate resource. In this example the request only passes
mandatory attributes.
Request
POST {apiRoot}/serviceCandidate
Content-Type: application/json
{
"name": "a string ..."
}
Response
201
{
"href": "https:/host:port/tmf-api/serviceCandidate/v1/serviceCandidate/9315",
"id": "9315",
"name": "a string ..."
}
PATCH /serviceCandidate/{id}
Description
This operation allows partial updates of a service candidate entity. Support of json/merge
(https://tools.ietf.org/html/rfc7386) is mandatory, support of json/patch (http://tools.ietf.org/html/rfc5789) is
optional.
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
Request
PATCH {apiRoot}/serviceCandidate/9315
Content-Type: application/merge-patch+json
{
"name": "new name"
}
Response
200
{
"category": [
{}
],
"description": "This service candidate ...",
"href": "https:/host:port/tmf-api/serviceCandidate/v1/serviceCandidate/9315",
"id": "9315",
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "new name",
"serviceSpecification": {},
"validFor": {},
"version": "a string ..."
}
DELETE /serviceCandidate/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/serviceCandidate/42
Response
204
GET /serviceQualification?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceQualification
Accept: application/json
Response
200
[
{
"description": "This service qualification ...",
"effectiveQualificationDate": "2019-05-13T00:00",
"estimatedResponseDate": "2019-05-13T00:00",
"expectedQualificationDate": "2019-05-13T00:00",
"expirationDate": "2019-05-13T00:00",
"externalId": "506",
"href": "https:/host:port/tmf-api/serviceQualification/v1/serviceQualification/7775",
"id": "7775",
"provideAlternative": true,
"provideOnlyAvailable": true,
"provideUnavailabilityReason": true,
"qualificationResult": "a string ...",
"relatedParty": [
{}
],
"serviceQualificationDate": "2019-05-13T00:00",
"serviceQualificationItem": [
{}
],
"state": "a string ..."
}
GET /serviceQualification/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceQualification/7775
Accept: application/json
Response
200
{
"description": "This service qualification ...",
"effectiveQualificationDate": "2019-05-13T00:00",
"estimatedResponseDate": "2019-05-13T00:00",
"expectedQualificationDate": "2019-05-13T00:00",
"expirationDate": "2019-05-13T00:00",
"externalId": "506",
"href": "https:/host:port/tmf-api/serviceQualification/v1/serviceQualification/7775",
"id": "7775",
"provideAlternative": true,
"provideOnlyAvailable": true,
"provideUnavailabilityReason": true,
"qualificationResult": "a string ...",
"relatedParty": [
{}
],
"serviceQualificationDate": "2019-05-13T00:00",
"serviceQualificationItem": [
{}
],
"state": "a string ..."
}
POST /serviceQualification
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating a
ServiceQualification, 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 ServiceQualification resource. In this example the request only passes
mandatory attributes.
Request
POST {apiRoot}/serviceQualification
Content-Type: application/json
{
"serviceQualificationItem": [
{}
]
}
© TM Forum 2020. All Rights Reserved. Page 114 of 161
IoT Service Management API User Guide
Response
201
{
"href": "https:/host:port/tmf-api/serviceQualification/v1/serviceQualification/7775",
"id": "7775",
"serviceQualificationItem": [
{}
]
}
PATCH /serviceQualification/{id}
Description
This operation allows partial updates of a service qualification entity. Support of json/merge
(https://tools.ietf.org/html/rfc7386) is mandatory, support of json/patch (http://tools.ietf.org/html/rfc5789) is
optional.
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
Request
PATCH {apiRoot}/serviceQualification/7775
Content-Type: application/merge-patch+json
{
"name": "new name"
}
Response
200
{
"description": "This service qualification ...",
"effectiveQualificationDate": "2019-05-13T00:00",
"estimatedResponseDate": "2019-05-13T00:00",
"expectedQualificationDate": "2019-05-13T00:00",
"expirationDate": "2019-05-13T00:00",
"externalId": "506",
"href": "https:/host:port/tmf-api/serviceQualification/v1/serviceQualification/7775",
"id": "7775",
"provideAlternative": true,
"provideOnlyAvailable": true,
"provideUnavailabilityReason": true,
"qualificationResult": "a string ...",
"relatedParty": [
{}
],
"serviceQualificationDate": "2019-05-13T00:00",
"serviceQualificationItem": [
{}
],
"state": "a string ...",
"name": "new name"
DELETE /serviceQualification/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/serviceQualification/42
Response
204
GET /serviceProblem?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceProblem
Accept: application/json
Response
200
[
{
"affectedLocation": [
{}
],
"affectedNumberOfServices": 69,
"affectedResource": [
{}
],
"affectedService": [
{}
],
"associatedSLAViolation": [
{}
],
"associatedTroubleTicket": [
{}
],
"category": "a string ...",
"comment": [
{}
],
"correlationId": "305",
"description": "This service problem ...",
"extensionInfo": [
{}
],
"firstAlert": {},
"href": "https:/host:port/tmf-api/serviceProblem/v1/serviceProblem/8561",
"id": "8561",
"impactImportanceFactor": "a string ...",
"impactPatterns": {},
"originatingSystem": "a string ...",
"originatorParty": {},
"parentProblem": [
{}
],
"priority": 51,
"problemEscalation": "a string ...",
"reason": "a string ...",
"relatedEvent": [
{}
],
"relatedObject": [
{}
],
"relatedParty": [
© TM Forum 2020. All Rights Reserved. Page 118 of 161
IoT Service Management API User Guide
{}
],
"resolutionDate": "2019-05-13T00:00",
"responsibleParty": {},
"rootCauseResource": [
{}
],
"rootCauseService": [
{}
],
"status": "a string ...",
"statusChangeDate": "2019-05-13T00:00",
"statusChangeReason": "a string ...",
"timeChanged": "2019-05-13T00:00",
"timeRaised": "2019-05-13T00:00",
"trackingRecord": [
{}
],
"underlyingAlarm": [
{}
],
"underlyingProblem": [
{}
]
}
]
GET /serviceProblem/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceProblem/8561
Accept: application/json
Response
200
{
"affectedLocation": [
{}
],
"affectedNumberOfServices": 69,
"affectedResource": [
{}
],
"affectedService": [
{}
],
"associatedSLAViolation": [
{}
],
"associatedTroubleTicket": [
{}
],
"category": "a string ...",
"comment": [
{}
],
"correlationId": "305",
"description": "This service problem ...",
"extensionInfo": [
{}
],
"firstAlert": {},
"href": "https:/host:port/tmf-api/serviceProblem/v1/serviceProblem/8561",
"id": "8561",
"impactImportanceFactor": "a string ...",
"impactPatterns": {},
"originatingSystem": "a string ...",
"originatorParty": {},
"parentProblem": [
{}
],
"priority": 51,
"problemEscalation": "a string ...",
"reason": "a string ...",
"relatedEvent": [
{}
],
"relatedObject": [
{}
],
"relatedParty": [
{}
],
"resolutionDate": "2019-05-13T00:00",
© TM Forum 2020. All Rights Reserved. Page 120 of 161
IoT Service Management API User Guide
"responsibleParty": {},
"rootCauseResource": [
{}
],
"rootCauseService": [
{}
],
"status": "a string ...",
"statusChangeDate": "2019-05-13T00:00",
"statusChangeReason": "a string ...",
"timeChanged": "2019-05-13T00:00",
"timeRaised": "2019-05-13T00:00",
"trackingRecord": [
{}
],
"underlyingAlarm": [
{}
],
"underlyingProblem": [
{}
]
}
POST /serviceProblem
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating a ServiceProblem,
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 ServiceProblem resource. In this example the request only passes
mandatory attributes.
Request
POST {apiRoot}/serviceProblem
Content-Type: application/json
{
"category": "a string ...",
"description": "This service problem ...",
"originatorParty": {},
"priority": 51,
"reason": "a string ..."
}
Response
201
{
"category": "a string ...",
"description": "This service problem ...",
"href": "https:/host:port/tmf-api/serviceProblem/v1/serviceProblem/8561",
"id": "8561",
"originatorParty": {},
"priority": 51,
"reason": "a string ..."
}
PATCH /serviceProblem/{id}
Description
This operation allows partial updates of a service problem entity. Support of json/merge
(https://tools.ietf.org/html/rfc7386) is mandatory, support of json/patch (http://tools.ietf.org/html/rfc5789) is
optional.
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
Request
PATCH {apiRoot}/serviceProblem/8561
Content-Type: application/merge-patch+json
{
"name": "new name"
}
Response
200
{
© TM Forum 2020. All Rights Reserved. Page 124 of 161
IoT Service Management API User Guide
"affectedLocation": [
{}
],
"affectedNumberOfServices": 69,
"affectedResource": [
{}
],
"affectedService": [
{}
],
"associatedSLAViolation": [
{}
],
"associatedTroubleTicket": [
{}
],
"category": "a string ...",
"comment": [
{}
],
"correlationId": "305",
"description": "This service problem ...",
"extensionInfo": [
{}
],
"firstAlert": {},
"href": "https:/host:port/tmf-api/serviceProblem/v1/serviceProblem/8561",
"id": "8561",
"impactImportanceFactor": "a string ...",
"impactPatterns": {},
"originatingSystem": "a string ...",
"originatorParty": {},
"parentProblem": [
{}
],
"priority": 51,
"problemEscalation": "a string ...",
"reason": "a string ...",
"relatedEvent": [
{}
],
"relatedObject": [
{}
],
"relatedParty": [
{}
],
"resolutionDate": "2019-05-13T00:00",
"responsibleParty": {},
"rootCauseResource": [
{}
],
"rootCauseService": [
{}
],
"status": "a string ...",
"statusChangeDate": "2019-05-13T00:00",
"statusChangeReason": "a string ...",
"timeChanged": "2019-05-13T00:00",
"timeRaised": "2019-05-13T00:00",
"trackingRecord": [
{}
],
"underlyingAlarm": [
{}
],
"underlyingProblem": [
{}
],
"name": "new name"
}
DELETE /serviceProblem/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/serviceProblem/42
Response
204
GET /iotServiceSpecification?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/iotServiceSpecification
Accept: application/json
Response
200
[
{
"description": "This iot service specification ...",
"href": "https:/host:port/tmf-api/iotServiceSpecification/v1/iotServiceSpecification/4530",
"id": "4530",
"isBundle": true,
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "a string ...",
"version": "a string ...",
"attachment": [
{}
],
"relatedParty": [
{}
],
"resourceSpecification": [
{}
],
"serviceLevelSpecification": [
{}
],
"serviceSpecCharacteristic": [
{}
],
"serviceSpecRelationship": [
{}
],
"targetServiceSchema": {},
"validFor": {}
}
© TM Forum 2020. All Rights Reserved. Page 127 of 161
IoT Service Management API User Guide
GET /iotServiceSpecification/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/iotServiceSpecification/4530
Accept: application/json
Response
200
{
"description": "This iot service specification ...",
"href": "https:/host:port/tmf-api/iotServiceSpecification/v1/iotServiceSpecification/4530",
"id": "4530",
"isBundle": true,
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "a string ...",
"version": "a string ...",
"attachment": [
{}
],
"relatedParty": [
{}
],
"resourceSpecification": [
{}
],
"serviceLevelSpecification": [
{}
],
"serviceSpecCharacteristic": [
{}
© TM Forum 2020. All Rights Reserved. Page 128 of 161
IoT Service Management API User Guide
],
"serviceSpecRelationship": [
{}
],
"targetServiceSchema": {},
"validFor": {}
}
POST /iotServiceSpecification
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating an
IotServiceSpecification, 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 an IotServiceSpecification resource. In this example the request only
passes mandatory attributes.
Request
POST {apiRoot}/iotServiceSpecification
Content-Type: application/json
{
"name": "a string ..."
}
Response
201
{
"href": "https:/host:port/tmf-api/iotServiceSpecification/v1/iotServiceSpecification/4530",
"id": "4530",
"name": "a string ..."
}
PATCH /iotServiceSpecification/{id}
Description
This operation allows partial updates of an iot service specification entity. Support of json/merge
(https://tools.ietf.org/html/rfc7386) is mandatory, support of json/patch (http://tools.ietf.org/html/rfc5789) is
optional.
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
Request
PATCH {apiRoot}/iotServiceSpecification/4530
Content-Type: application/merge-patch+json
{
"name": "new name"
}
Response
200
{
"description": "This iot service specification ...",
"href": "https:/host:port/tmf-api/iotServiceSpecification/v1/iotServiceSpecification/4530",
"id": "4530",
"isBundle": true,
"lastUpdate": "2019-05-13T00:00",
"lifecycleStatus": "a string ...",
"name": "new name",
"version": "a string ...",
"attachment": [
{}
],
"relatedParty": [
{}
],
"resourceSpecification": [
{}
© TM Forum 2020. All Rights Reserved. Page 131 of 161
IoT Service Management API User Guide
],
"serviceLevelSpecification": [
{}
],
"serviceSpecCharacteristic": [
{}
],
"serviceSpecRelationship": [
{}
],
"targetServiceSchema": {},
"validFor": {}
}
DELETE /iotServiceSpecification/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/iotServiceSpecification/42
Response
204
GET /serviceTest?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceTest
Accept: application/json
Response
200
[
{
"characteristic": [
{}
],
"description": "This service test ...",
"endDateTime": "2019-05-13T00:00",
"href": "https:/host:port/tmf-api/serviceTest/v1/serviceTest/1983",
"id": "1983",
"mode": "a string ...",
"name": "a string ...",
"relatedService": {},
"startDateTime": "2019-05-13T00:00",
"state": "a string ...",
"testMeasure": [
{}
],
"testSpecification": {}
}
]
GET /serviceTest/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceTest/1983
Accept: application/json
Response
200
{
"characteristic": [
{}
],
"description": "This service test ...",
"endDateTime": "2019-05-13T00:00",
"href": "https:/host:port/tmf-api/serviceTest/v1/serviceTest/1983",
"id": "1983",
"mode": "a string ...",
"name": "a string ...",
"relatedService": {},
"startDateTime": "2019-05-13T00:00",
"state": "a string ...",
"testMeasure": [
{}
],
"testSpecification": {}
}
POST /serviceTest
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating a ServiceTest,
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 ServiceTest resource. In this example the request only passes
mandatory attributes.
Request
POST {apiRoot}/serviceTest
Content-Type: application/json
{
"name": "a string ...",
"relatedService": {},
"testSpecification": {}
}
Response
201
{
"href": "https:/host:port/tmf-api/serviceTest/v1/serviceTest/1983",
"id": "1983",
"name": "a string ...",
"relatedService": {},
"testSpecification": {}
}
PATCH /serviceTest/{id}
Description
This operation allows partial updates of a service test entity. Support of json/merge
(https://tools.ietf.org/html/rfc7386) is mandatory, support of json/patch (http://tools.ietf.org/html/rfc5789) is
optional.
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
Request
PATCH {apiRoot}/serviceTest/1983
Content-Type: application/merge-patch+json
{
"name": "new name"
}
Response
200
{
"characteristic": [
{}
],
"description": "This service test ...",
"endDateTime": "2019-05-13T00:00",
"href": "https:/host:port/tmf-api/serviceTest/v1/serviceTest/1983",
"id": "1983",
"mode": "a string ...",
"name": "new name",
"relatedService": {},
"startDateTime": "2019-05-13T00:00",
"state": "a string ...",
"testMeasure": [
{}
],
"testSpecification": {}
}
DELETE /serviceTest/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/serviceTest/42
Response
204
GET /serviceTestSpecification?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceTestSpecification
Accept: application/json
Response
200
[
{
"description": "This service test specification ...",
"href": "https:/host:port/tmf-api/serviceTestSpecification/v1/serviceTestSpecification/8023",
"id": "8023",
"name": "a string ...",
"relatedServiceSpecification": {},
"testMeasureDefinition": [
{}
],
"validFor": {},
"version": "a string ..."
}
]
GET /serviceTestSpecification/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/serviceTestSpecification/8023
Accept: application/json
Response
200
{
"description": "This service test specification ...",
"href": "https:/host:port/tmf-api/serviceTestSpecification/v1/serviceTestSpecification/8023",
"id": "8023",
"name": "a string ...",
"relatedServiceSpecification": {},
"testMeasureDefinition": [
{}
],
"validFor": {},
"version": "a string ..."
}
POST /serviceTestSpecification
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating a
ServiceTestSpecification, 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 ServiceTestSpecification resource. In this example the request only
passes mandatory attributes.
Request
POST {apiRoot}/serviceTestSpecification
Content-Type: application/json
{
"name": "a string ...",
"relatedServiceSpecification": {}
}
Response
201
{
"href": "https:/host:port/tmf-api/serviceTestSpecification/v1/serviceTestSpecification/8023",
"id": "8023",
"name": "a string ...",
"relatedServiceSpecification": {}
}
PATCH /serviceTestSpecification/{id}
Description
This operation allows partial updates of a service test specification entity. Support of json/merge
(https://tools.ietf.org/html/rfc7386) is mandatory, support of json/patch (http://tools.ietf.org/html/rfc5789) is
optional.
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
Request
PATCH {apiRoot}/serviceTestSpecification/8023
Content-Type: application/merge-patch+json
{
"name": "new name"
}
Response
200
{
© TM Forum 2020. All Rights Reserved. Page 141 of 161
IoT Service Management API User Guide
DELETE /serviceTestSpecification/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/serviceTestSpecification/42
Response
204
GET /usageConsumptionReportRequest?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/usageConsumptionReportRequest
Accept: application/json
Response
200
[
{
"bucket": [
{}
],
"creationDate": "2019-05-13T00:00",
"href": "https:/host:port/tmf-api/usageConsumptionReportRequest/v1/usageConsumptionReportRequest/4925",
"id": "4925",
"lastUpdate": "2019-05-13T00:00",
"product": {},
"relatedParty": [
{}
],
"status": "a string ...",
"usageConsumptionReport": {},
"validPeriod": {}
}
]
GET
/usageConsumptionReportRequest/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/usageConsumptionReportRequest/4925
Accept: application/json
Response
200
{
"bucket": [
{}
],
"creationDate": "2019-05-13T00:00",
"href": "https:/host:port/tmf-api/usageConsumptionReportRequest/v1/usageConsumptionReportRequest/4925",
"id": "4925",
"lastUpdate": "2019-05-13T00:00",
"product": {},
"relatedParty": [
{}
],
"status": "a string ...",
"usageConsumptionReport": {},
"validPeriod": {}
}
POST /usageConsumptionReportRequest
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating a
UsageConsumptionReportRequest, 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 UsageConsumptionReportRequest resource. In this example the
request only passes mandatory attributes.
Request
POST {apiRoot}/usageConsumptionReportRequest
Content-Type: application/json
{}
Response
201
{
"href": "https:/host:port/tmf-api/usageConsumptionReportRequest/v1/usageConsumptionReportRequest/4925",
"id": "4925"
}
DELETE /usageConsumptionReportRequest/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/usageConsumptionReportRequest/42
Response
204
Operations on User
List users
GET /user?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/user
Accept: application/json
Response
200
[
{
"description": "This user ..."
}
]
Retrieve user
GET /user/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/user/42
Accept: application/json
Response
200
{
"description": "This user ..."
}
Create user
POST /user
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating a User, 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 User resource. In this example the request only passes mandatory
attributes.
Request
POST {apiRoot}/user
Content-Type: application/json
{}
Response
201
{}
Delete user
DELETE /user/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/user/42
Response
204
GET /usageConsumptionReport?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/usageConsumptionReport
Accept: application/json
Response
200
[
{
"bucket": [
{}
],
"description": "This usage consumption report ...",
"effectiveDate": "2019-05-13T00:00",
"href": "https:/host:port/tmf-api/usageConsumptionReport/v1/usageConsumptionReport/8486",
"id": "8486",
"name": "a string ...",
"relatedParty": {}
}
GET /usageConsumptionReport/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/usageConsumptionReport/8486
Accept: application/json
Response
200
{
"bucket": [
{}
],
"description": "This usage consumption report ...",
"effectiveDate": "2019-05-13T00:00",
"href": "https:/host:port/tmf-api/usageConsumptionReport/v1/usageConsumptionReport/8486",
"id": "8486",
"name": "a string ...",
"relatedParty": {}
}
DELETE /usageConsumptionReport/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/usageConsumptionReport/42
Response
204
GET /importJob?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/importJob
Accept: application/json
Response
200
[
{
"completionDate": "2019-05-13T00:00",
"contentType": "a string ...",
"creationDate": "2019-05-13T00:00",
"errorLog": "a string ...",
© TM Forum 2020. All Rights Reserved. Page 151 of 161
IoT Service Management API User Guide
"href": "https:/host:port/tmf-api/importJob/v1/importJob/4640",
"id": "4640",
"path": "a string ...",
"status": "a string ...",
"url": "a string ..."
}
]
GET /importJob/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/importJob/4640
Accept: application/json
Response
200
{
"completionDate": "2019-05-13T00:00",
"contentType": "a string ...",
"creationDate": "2019-05-13T00:00",
"errorLog": "a string ...",
"href": "https:/host:port/tmf-api/importJob/v1/importJob/4640",
"id": "4640",
"path": "a string ...",
"status": "a string ...",
"url": "a string ..."
}
POST /importJob
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating an ImportJob,
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 an ImportJob resource. In this example the request only passes
mandatory attributes.
Request
POST {apiRoot}/importJob
Content-Type: application/json
{
"url": "a string ..."
}
Response
201
{
"href": "https:/host:port/tmf-api/importJob/v1/importJob/4640",
"id": "4640",
© TM Forum 2020. All Rights Reserved. Page 153 of 161
IoT Service Management API User Guide
DELETE /importJob/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/importJob/42
Response
204
GET /exportJob?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/exportJob
Accept: application/json
Response
200
[
{
"completionDate": "2019-05-13T00:00",
"contentType": "a string ...",
"creationDate": "2019-05-13T00:00",
"errorLog": "a string ...",
"href": "https:/host:port/tmf-api/exportJob/v1/exportJob/1721",
"id": "1721",
"path": "a string ...",
"query": "a string ...",
"status": "a string ...",
"url": "a string ..."
}
]
GET /exportJob/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET {apiRoot}/exportJob/1721
Accept: application/json
Response
200
{
"completionDate": "2019-05-13T00:00",
"contentType": "a string ...",
© TM Forum 2020. All Rights Reserved. Page 155 of 161
IoT Service Management API User Guide
"creationDate": "2019-05-13T00:00",
"errorLog": "a string ...",
"href": "https:/host:port/tmf-api/exportJob/v1/exportJob/1721",
"id": "1721",
"path": "a string ...",
"query": "a string ...",
"status": "a string ...",
"url": "a string ..."
}
POST /exportJob
Description
The following tables provide the list of mandatory and non-mandatory attributes when creating an ExportJob,
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 an ExportJob resource. In this example the request only passes
mandatory attributes.
Request
POST {apiRoot}/exportJob
Content-Type: application/json
{
"url": "a string ..."
}
Response
201
{
"href": "https:/host:port/tmf-api/exportJob/v1/exportJob/1721",
"id": "1721",
"url": "a string ..."
}
DELETE /exportJob/{id}
Description
Usage Samples
Request
DELETE {apiRoot}/exportJob/42
Response
204
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.
© TM Forum 2020. All Rights Reserved. Page 159 of 161
IoT Service Management API User Guide
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
Document History
Version History
Release History
Contributors to Document