TMF651 Agreement Management API User Guides v4.0.0
TMF651 Agreement Management API User Guides v4.0.0
TMF651
Release 19.0.1
November 2019
NOTICE
Copyright © TM Forum 2019. All Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative works that comment on
or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in
whole or in part, without restriction of any kind, provided that the above copyright notice and this section are
included on all such copies and derivative works. However, this document itself may not be modified in any way,
including by removing the copyright notice or references to TM FORUM, except as needed for the purpose of
developing any document or deliverable produced by a TM FORUM Collaboration Project Team (in which case the
rules applicable to copyrights, as set forth in the TM FORUM IPR Policy, must be followed) or as required to
translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by TM FORUM or its successors or
assigns.
This document and the information contained herein is provided on an "AS IS" basis and TM FORUM DISCLAIMS
ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
TM FORUM invites any TM FORUM Member or any other party that believes it has patent claims that would
necessarily be infringed by implementations of this TM Forum Standards Final Deliverable, to notify the TM FORUM
Team Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a
manner consistent with the IPR Mode of the TM FORUM Collaboration Project Team that produced this deliverable.
The TM FORUM invites any party to contact the TM FORUM Team Administrator if it is aware of a claim of
ownership of any patent claims that would necessarily be infringed by implementations of this TM FORUM
Standards Final Deliverable by a patent holder that is not willing to provide a license to such patent claims in a
manner consistent with the IPR Mode of the TM FORUM Collaboration Project Team that produced this TM FORUM
Standards Final Deliverable. TM FORUM may include such claims on its website but disclaims any obligation to do
so.
TM FORUM takes no position regarding the validity or scope of any intellectual property or other rights that might
be claimed to pertain to the implementation or use of the technology described in this TM FORUM Standards Final
Deliverable or the extent to which any license under such rights might or might not be available; neither does it
represent that it has made any effort to identify any such rights. Information on TM FORUM's procedures with
respect to rights in any document or deliverable produced by a TM FORUM Collaboration Project Team can be
found on the TM FORUM website. Copies of claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to obtain a general license or permission for the
use of such proprietary rights by implementers or users of this TM FORUM Standards Final Deliverable, can be
obtained from the TM FORUM Team Administrator. TM FORUM makes no representation that any information or
list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential
Claims.
TABLE OF CONTENTS
NOTICE ............................................................................................................................................................................ 2
Table of Contents............................................................................................................................................................ 4
Introduction .................................................................................................................................................................... 7
Create agreement.................................................................................................................................................. 28
Delete agreement.................................................................................................................................................. 33
API NOTIFICATIONS....................................................................................................................................................... 40
Acknowledgements ...................................................................................................................................................... 43
LIST OF TABLES
N/A
INTRODUCTION
The Agreement API provides standardized mechanism for managing agreements, especially in the context on
partnerships between partners.
The API allows creation, update and query of agreement instances as well as creation, update and query of
agreement specifications – serving as templates for agreement instances.
The following APIs are typically used in conjunction with this API:
- Product Catalog Management API to refer to the product offerings that are linked to the agreements or
agreement specifications.
- Party Management API to refer to the engaged parties that have signed wagreements
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
Agreement resource
An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law,
such as a service level agreement or a customer price agreement. An agreement involves a number of other
business entities, such as products, services, and resources and/or their specifications.
Resource model
Field descriptions
Agreement fields
agreementItem A list of agreement items (AgreementItem [1..*]). A part of the agreement expressed
in terms of a product offering and possibly including specific terms and conditions.
agreementPeriod A time period. The time period during which the Agreement is in effect.
description A string. Narrative that explains the agreement and details about the it , such as why
the agreement is taking place.
engagedParty A list of related parties (RelatedParty [1..*]). Related Entity reference. A related party
defines party or party role linked to a specific entity.
initialDate A date time (DateTime). Date at which the agreement was initialized.
status A string. The current status of the agreement. Typical values are: in process, approved
and rejected.
AgreementAuthorization sub-resource
date A date time (DateTime). The date associated with the authorization state.
signatureRepresentation A string. Indication that represents whether the signature is a physical paper
signature or a digital signature.
state A string. Current status of the authorization, for example in process, approved,
rejected.
AgreementItem sub-resource
A part of the agreement expressed in terms of a product offering and possibly including specific terms and
conditions.
product A list of product references (ProductRef [*]). The list of products indirectly referred by
this agreement item (since an agreement item refers primarily to product offerings).
productOffering A list of product offering references (ProductOfferingRef [*]). The list of product
offerings referred by this agreement item.
AgreementTermOrCondition sub-resource
Aspects of the agreement not formally specified elsewhere in the agreement and that cannot be captured
elsewhere in a formal notation, or automatically monitored and require a more human level of management.
description A string. Text that explains the term or condition of the agreement.
validFor A time period. The period of time during which the term or condition of the
agreement applies.
Characteristic 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.
AgreementRef relationship
Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes
enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a
number of other business entities, such as products, services, and resources and/or their specifications.
@referredType A string. The actual type of the target instance when needed for disambiguation.
AgreementSpecificationRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
description A string. A narrative that explains in detail what the agreement specification is about.
ProductOfferingRef relationship
ProductOffering reference. A product offering represents entities that are orderable from the provider of the
catalog, this resource includes pricing information.
@referredType A string. The actual type of the target instance when needed for disambiguation.
ProductRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
{
"@type": "Agreement",
"href": "https://host:port/tmf-api/agreementManagement/v4/agreement/40",
"id": "40",
"name": "Moon",
"status": "Pending",
"documentNumber": "97867",
"version": "1.0",
"agreementSpecification": {
"href": "https://host:port/tmf-api/agreementManagement/v4/agreementSpecification/1140",
"id": "1140",
"name": "Moon Agreement Template"
},
"validFor": {
"startDateTime": "2018-06-12T00:00Z",
"endDateTime": "2019-01-11T00:00Z"
},
"engagedParty": [
{
"@type": "Organization",
"href": "https://host:port/tmf-api/partyManagement/v4/organization/500",
"id": "500",
"name": "Happy Travellers"
}
],
"characteristic": [
{
"name": "fidelityProgram",
"value": "premium",
"valueType": "string"
}
],
"relatedParty": [
{
"href": "https://host:port/tmf-api/partyManagement/v4/organization/2777",
"id": "2777",
"name": "John Doe",
"role": "bill receiver"
}
],
"agreementItem": [
{
"productOffering": {
"href": "https://host:port/tmf-api/productCatalogManagement/v4/productOffering/61",
"name": "ChristmasToy"
},
"termOrCondition": {
"id": "1",
"description": "delivery should be done in France"
}
}
]
}
Resource model
Field descriptions
AgreementSpecification fields
description A string. A narrative that explains in detail what the agreement specification is
about.
lastUpdate A date time (DateTime). Date and time of the last update.
relatedParty A list of related parties (RelatedParty [*]). Related Entity reference. A related party
defines party or party role linked to a specific entity.
validFor A time period. The period for which the agreement specification is valid.
AgreementSpecCharacteristic sub-resource
configurable A boolean. If true, the Boolean indicates that the characteristic is configurable.
description A string. A narrative that explains in detail what the characteristic is.
validFor A time period. The period for which the specification characteristic is valid.
valueType A string. A kind of value that the characteristic can take on, such as numeric, text and
so forth.
AgreementSpecCharacteristicValue sub-resource
default A boolean. Indicates if the value is the default value for a characteristic.
unitOfMeasure A string. Unit of measure for the characteristic, such as minutes, gigabytes (GB) and so
on.
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.
valueFrom A string. The low range value that a characteristic can take on.
valueTo A string. 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.
AgreementSpecificationRelationship sub-resource
A relationship between agreement specifications. Typical relationships are substitution and dependency.
@referredType A string. The actual type of the target instance when needed for disambiguation.
validFor A time period. The period for which the relationship is valid.
AttachmentRefOrValue sub-resource
An attachment by value or by reference. An attachment complements the description of an element, for example
through a document, a video, a picture.
@referredType A string. The actual type of the target instance when needed for disambiguation.
url A string. Uniform Resource Locator, is a web page address (a subset of URI).
content A string. The actual contents of the attachment object, if embedded, encoded as
base64.
mimeType A string. Attachment mime type such as extension file for video, picture and
document.
validFor A time period. The period of time for which the attachment is valid.
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.
CategoryRef relationship
@referredType A string. The actual type of the target instance when needed for disambiguation.
{
"@type": "AgreementSpecification",
"href": "https://host:port/tmf-api/agreementManagement/v4/agreementSpecification/1140",
"id": "1140",
"name": "Moon Agreement Template",
"lifecycleStatus": "Approved",
"version": "2.0",
"validFor": {
"startDateTime": "2018-06-12T00:00Z",
"endDateTime": "2019-01-11T00:00Z"
},
"specificationCharacteristic": [
{
"name": "fidelityProgram",
"configurable": true,
"valueType": "string"
}
],
"relatedParty": [
{
"@referredType": "Organization",
"href": "https://host:port/tmf-api/partyManagement/v4/organization/2777",
"id": "2777",
"name": "John Doe",
"role": "bill receiver"
}
]
}
The notification structure for all notifications in this API follow the pattern depicted by the figure below.
A notification event resource (depicted by "SpecificEvent" placeholder) is a sub class of a generic Event structure
containing at least an id of the event occurrence (eventId), an event timestamp (eventTime), and the name of the
resource (eventType).
This notification structure owns an event payload structure ("SpecificEventPayload" placeholder) linked to the
resource concerned by the notification using the resource name as access field ("resourceName" placeholder).
We provide below the json representation of an example of a 'AgreementCreateEvent' notification event object
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"AgreementCreateEvent",
"event": {
"agreement" :
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"AgreementAttributeValueChangeEvent",
"event": {
"agreement" :
{-- SEE Agreement RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"AgreementStateChangeEvent",
"event": {
"agreement" :
{-- SEE Agreement RESOURCE SAMPLE --}
}
}
We provide below the json representation of an example of a 'AgreementDeleteEvent' notification event object
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"AgreementDeleteEvent",
"event": {
"agreement" :
{-- SEE Agreement RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"AgreementSpecificationCreateEvent",
"event": {
"agreementSpecification" :
{-- SEE AgreementSpecification RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"AgreementSpecificationAttributeValueChangeEvent",
"event": {
"agreementSpecification" :
{-- SEE AgreementSpecification RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"AgreementSpecificationStateChangeEvent",
"event": {
"agreementSpecification" :
{-- SEE AgreementSpecification RESOURCE SAMPLE --}
}
}
{
"eventId":"00001",
"eventTime":"2015-11-16T16:42:25-04:00",
"eventType":"AgreementSpecificationDeleteEvent",
"event": {
"agreementSpecification" :
{-- SEE AgreementSpecification RESOURCE SAMPLE --}
}
}
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.
Operations on Agreement
List agreements
GET /agreement?fields=...&{filtering}
Description
Usage Samples
Retrieving all approved agreements of engaged party 'So Magic Ltd'. The result items are shrinked to show only the
id and name(fields=id,name)
Request
Response
200
[
{
"id": "8756",
"name": "Employment Quota"
},
{
"id": "9435",
"name": "Zero Bug"
}
]
Retrieve agreement
GET /agreement/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET /tmf-api/agreementManagement/v4/agreement/4989
Accept: application/json
Response
200
{
"@type": "Agreement",
"href": "https://host:port/tmf-api/agreementManagement/v4/agreement/4989",
"id": "4989",
"description": "This agreement ...",
"name": "Summer Contract Agreement",
"initialDate": "2015-10-16T00:00Z",
"completionDate": "2018-11-25T00:00Z",
"agreementPeriod": {
"startDateTime": "2018-04-20T00:00",
"endDateTime": "2018-11-20T00:00"
},
"documentNumber": 11,
"statementOfIntent": "Agreement on minimum prices",
"status": "process",
"agreementType": "commercial",
"version": "1.5",
"agreementSpecification": {
"@referredType": "AgreementSpecification",
"description": "This agreement specification defines the environment protection rules to be followed by each
party.",
"href": "https://host:port/tmf-api/agreementManagement/v4/agreementSpecification/2633",
"id": "2633",
"name": "General Agreement Specification"
},
"agreementItem": [
{
"productOffering": [
{
"@typr": "ProductOffering",
"href": "https://host:port/tmf-api/productCatalogManagement/v4/productOffering/9085",
"id": "9085",
"name": "My Quick BB Offer"
}
],
"termOrCondition": [
{
"description": "This agreement term or condition ...",
"id": "5890",
"validFor": {
"startDateTime": "2018-04-25T00:00",
"endDateTime": "2018-11-20T00:00"
}
}
]
}
],
"engagedParty": [
{
"@referredType": "Organization",
"href": "https://host:port/tmf-api/partyManagement/v4/organization/330",
"id": "330",
"role": "Supplier",
"name": "Magic Tools Company"
}
],
"agreementAuthorization": [
{
"date": "2018-04-24T00:00Z",
"signatureRepresentation": "Dr Mabuse",
"state": "approved"
}
],
"characteristic": [
[
{
"name": "country",
"value": "Spain"
},
{
"name": "confidentialLevel",
"value": "high"
}
]
],
"associatedAgreement": [
[
{
"@referredType": "Agreement",
"name": "General Partnership Agreement",
"href": "https://host:port/tmf-api/agreementManagement/v4/agreement/5453"
}
]
]
}
Create agreement
POST /agreement
Description
The following tables provide the list of mandatory and non mandatory attributes when creating a Agreement,
including any possible rule conditions and applicable default values. Notice that it is up to an implementer to add
additional mandatory attributes.
Additional Rules
The following table provides additional rules indicating mandatory fields in sub-resources or relationships when
creating a Agreement resource.
Default Values
When creating the resource, the following table provides the default values applicable to optional attributes of the
resource (or sub-resources).
Usage Samples
Request
POST /tmf-api/agreementManagement/v4/agreement
Content-Type: application/json
{
"name": "Summer Contract Agreement",
"agreementType": "commercial",
"agreementItem": [
{
"productOffering": [
{
"@referredType": "ProductOffering",
"href": "https://host:port/tmf-api/productCatalogManagement/v4/productOffering/9085",
"id": "9085",
"name": "My Quick BB Offer"
}
],
"termOrCondition": [
{
"description": "This agreement term or condition ...",
"id": "5890",
"validFor": {
"startDateTime": "2018-04-25T00:00Z",
"endDateTime": "2018-11-20T00:00Z"
}
}
]
}
],
"engagedParty": [
{
"@referredType": "Organization",
"href": "https://host:port/tmf-api/partyManagement/v4/organization/330",
"id": "330",
"role": "Supplier",
"name": "Magic Tools Company"
}
]
}
Response
201
{
"@type": "Agreement",
"href": "https://host:port/tmf-api/agreementManagement/v4/agreement/28",
"id": "28",
"name": "Summer Contract Agreement",
"agreementType": "commercial",
"agreementItem": [
{
"productOffering": [
{
"@referredType": "ProductOffering",
"href": "https://host:port/tmf-api/productCatalogManagement/v4/productOffering/9085",
"id": "9085",
"name": "My Quick BB Offer"
}
],
"termOrCondition": [
{
"description": "This agreement term or condition ...",
"id": "5890",
"validFor": {
"startDateTime": "2018-04-25T00:00Z",
"endDateTime": "2018-11-20T00:00Z"
}
}
]
}
],
"engagedParty": [
{
"@referredType": "Organization",
"href": "https://host:port/tmf-api/partyManagement/v4/organization/330",
"id": "330",
"role": "Supplier",
"name": "Magic Tools Company"
}
]
}
Patch agreement
PATCH /agreement/{id}
Description
Note: If the update operation yields to the creation of sub-resources or relationships, the same rules concerning
mandatory sub-resource attributes and default value settings in the POST operation applies to the PATCH
operation. Hence these tables are not repeated here.
The tables below provide the list of patchable and non patchable attributes, including constraint rules on their
usage.
Usage Samples
Request
PATCH /tmf-api/agreementManagement/v4/agreement/42
Content-Type: application/merge-patch+json
{
"status": "rejected"
}
Response
200
Delete agreement
DELETE /agreement/{id}
Description
Usage Samples
Request
DELETE /tmf-api/agreementManagement/v4/agreement/42
Response
204
GET /agreementSpecification?fields=...&{filtering}
Description
Usage Samples
Retrieving all agreement specifications with the government army. The result items are shrinked to show only the
id and name (fields=id,name).
Request
GET /tmf-api/agreementManagement/v4/agreementSpecification?fields=id,name&relatedParty.name="Army"
Accept: application/json
Response
200
[
{
"id": "5434",
"name": "General Maintenance"
},
{
"id": "9080",
"name": "Secret"
}
]
GET /agreementSpecification/{id}?fields=...&{filtering}
Description
Usage Samples
Request
GET /tmf-api/agreementManagement/v4/agreementSpecification/9320
Accept: application/json
Response
200
{
"@type": "AgreementSpecification",
"description": "This agreement specification defines the environment protection rules to be followed by each party.",
"href": "https://host:port/tmf-api/agreementManagement/v2/agreementSpecification/9320",
"id": "9320",
"isBundle": false,
"lastUpdate": "2018-04-24T00:00Z",
"lifecycleStatus": "initialized",
"name": "General Agreement Specification",
"validFor": {
"startDateTime": "2018-04-23T00:00Z",
"endDateTime": "2018-11-20T00:00Z"
},
"version": "3.0",
"serviceCategory": {
"href": "https://host:port/tmf-api/productCatalogManagement/v2/category/1545",
"id": "1545",
"name": "Secure Home"
},
"specCharacteristic": [
{
"configurable": true,
"description": "This agreement spec characteristic ...",
"name": "Phone color",
"validFor": {
"startDateTime": "2018-04-27T00:00Z",
"endDateTime": "2018-11-20T00:00Z"
},
"valueType": "string",
"specCharacteristicValue": [
{
"default": false,
"unitOfMeasure": "Hz",
"validFor": {
"startDateTime": "2018-04-27T00:00Z",
"endDateTime": "2018-11-20T00:00Z"
},
"value": "yellow",
"valueType": "string"
}
]
}
],
"relatedParty": [
{
"@referredParty": "Organization",
"href": "https://host:port/tmf-api/partyManagement/v2/organization/7401",
"id": "7401",
"name": "Jimmy Doe",
"role": "bill responsible"
}
],
"attachment": [
{
"@referredParty": "Attachment",
"href": "http://hostname:port/tmf-api/documentManagement/v1/attachment/44",
"id": "44",
"attachmentType": "Video",
"url": "http://xxxxx"
}
],
"specificationRelationship": [
{
"@type": "AgreementSpecification",
"href": "https://host:port/tmf-api/agreementManagement/v2/agreementSpecification/2481",
"id": "2481",
"relationshipType": "dependency",
"validFor": {
"startDateTime": "2018-04-23T00:00Z",
"endDateTime": "2018-11-20T00:00Z"
}
}
]
}
POST /agreementSpecification
Description
The following tables provide the list of mandatory and non mandatory attributes when creating a
AgreementSpecification, including any possible rule conditions and applicable default values. Notice that it is up to
an implementer to add additional mandatory attributes.
Default Values
When creating the resource, the following table provides the default values applicable to optional attributes of the
resource (or sub-resources).
Usage Samples
Request
POST /tmf-api/agreementManagement/v4/agreementSpecification
Content-Type: application/json
{
"name": "General Agreement Specification",
"attachment": [
{
"href": "http://tmf-api/name:port/tmf-api/documentManagement/v1/attachment/44",
"id": "44",
"attachmentType": "Video",
"url": "http://xxxxx"
}
]
}
Response
201
{
"@type": "AgreementSpecification",
"href": "https://host:port/tmf-api/agreementManagement/v4/agreementSpecification/9320",
"id": "9320",
"isBundle": false,
"name": "General Agreement Specification",
"attachment": [
{
"@referredType": "Attachment",
"href": "http://hostname:port/tmf-api/documentManagement/v4/attachment/44",
"id": "44",
"attachmnentType": "Video",
"url": "http://xxxxx"
}
]
}
PATCH /agreementSpecification/{id}
Description
This operation allows partial updates of an agreement 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 /tmf-api/agreementManagement/v4/agreementSpecification/42
Content-Type: application/merge-patch+json
{
"attachment": [
{
"url": "http://www.allmydocs.fr/agreement_standard.pdf",
"agreementType": "Document"
}
]
}
Response
200
DELETE /agreementSpecification/{id}
Description
Usage Samples
Request
DELETE /tmf-api/agreementManagement/v4/agreementSpecification/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.
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
Mariano Belaunde
Orange
[email protected]
Release History
Mariano Belaunde
Contributors to Document
Sunruinan Huawei
George Glass BT