0% found this document useful (0 votes)
51 views150 pages

TMF685 Resource Pool Userguide

The TM Forum Specification document provides a user guide for Resource Pool Management, detailing the REST API, model definitions, and available operations. It includes various resource models, use cases, and API operations related to managing resource pools. The document is currently in preview status and has been team approved as of September 29, 2024.

Uploaded by

vances1964
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views150 pages

TMF685 Resource Pool Userguide

The TM Forum Specification document provides a user guide for Resource Pool Management, detailing the REST API, model definitions, and available operations. It includes various resource models, use cases, and API operations related to managing resource pools. The document is currently in preview status and has been team approved as of September 29, 2024.

Uploaded by

vances1964
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 150

TM Forum Specification

Resource Pool Management


User Guide

TMF685

Maturity Level: General available (GA) Team Approved Date: 29-Sept-2024


Release Status: Preview Approval Status: Team approved
Version 5.0.0 IPR Mode: RAND

© TM Forum 2024. All Rights Reserved.


Resource Pool Management User Guide

NOTICE
Copyright © TM Forum 2024. All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative
works that comment on or otherwise explain it or assist in its implementation may be
prepared, copied, published, and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this section are included on all such
copies and derivative works. However, this document itself may not be modified in any way,
including by removing the copyright notice or references to TM FORUM, except as needed
for the purpose of developing any document or deliverable produced by a TM FORUM
Collaboration Project Team (in which case the rules applicable to copyrights, as set forth in
the TM FORUM IPR Policy, must be followed) or as required to translate it into languages
other than English.

The limited permissions granted above are perpetual and will not be revoked by TM FORUM
or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and TM
FORUM DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL
NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Direct inquiries to the TM Forum office:

181 New Road, Suite 304


Parsippany, NJ 07054, USA
Tel No. +1 862 227 1648
TM Forum Web Page: www.tmforum.org

© TM Forum 2024. All Rights Reserved. Page i


Resource Pool Management User Guide

Table of Contents
NOTICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Sample Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
UC: PhoneNumber Pool Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Support of polymorphism and extension patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
RESOURCE MODEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Managed Entity and Task Resource Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
CapacitySpecification resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
ResourcePoolSpecification resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
ResourcePool resource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
AvailabilityCheck resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Push resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Extract resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Notification Resource Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
CapacitySpecification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
ResourcePoolSpecification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
ResourcePool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
AvailabilityCheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Push . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
API OPERATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Operations on CapacitySpecification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Retrieves a CapacitySpecification by ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
List or find CapacitySpecification objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Creates a CapacitySpecification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Updates partially a CapacitySpecification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Deletes a CapacitySpecification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Operations on ResourcePoolSpecification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
List or find ResourcePoolSpecification objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Retrieves a ResourcePoolSpecification by ID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Creates a ResourcePoolSpecification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Updates partially a ResourcePoolSpecification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Deletes a ResourcePoolSpecification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Operations on ResourcePool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
List or find ResourcePool objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Retrieves a ResourcePool by ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Creates a ResourcePool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Updates partially a ResourcePool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Deletes a ResourcePool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Operations on AvailabilityCheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

© TM Forum 2024. All Rights Reserved. Page ii


Resource Pool Management User Guide

List or find AvailabilityCheck objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133


Retrieves a AvailabilityCheck by ID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Creates a AvailabilityCheck. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Operations on Push. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Retrieves a Push by ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
List or find Push objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Creates a Push . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Operations on Extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Retrieves a Extract by ID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
List or find Extract objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Creates a Extract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
API NOTIFICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Register listener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Unregister listener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Publish Event to listener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Release History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Contributors to Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

© TM Forum 2024. All Rights Reserved. Page 1


Resource Pool Management User Guide

Introduction
The following document is the user guide of the REST API for Resource Pool management.
It includes the model definition as well as all available operations.

© TM Forum 2024. All Rights Reserved. Page 2


Resource Pool Management User Guide

Sample Use Cases


The following scenario is used in the further chapters to demonstrate the use of the API
model structure.

UC: PhoneNumber Pool Management


In this scenario, the CSP obtained a range of Phone Numbers from the regulatory agency.

The CSP splits that range into smaller parts, each dedicated to one of CSP’s partners. For
each partner, CSP creates a Resource Pool for Phone Numbers (attaching Phone Number
ResourceSpecification to the Pool), with the corresponding Capacity, and fills the respective
Phone Number Resources into the Pool by a Push task.

Before the CSP can create the individual Resource Pools, he sets up a
ResourcePoolSpecification; to be able to attach capacities, a CapacitySpecification is
needed.

A partner can then (via the Resource Reservation API, as part of the pre-order process)
request reservation of individual Phone Numbers.

Precondition:

• There is a ResourceSpecification in the Resource Catalog that defines how Resources


representing a Phone Number are structured.
• The partners exist as PartyRole with attached Organization (Party)

Resource Resource Resource Resource


Reservation Order Inventor y Pool
Customer Partner CSP

create CapacitySpecification

create ResourcePoolSpecification

loop [ fo r e a ch Pa r t n e r ]
create ResourcePool for Phone Numbers (Resources) and Partner

push Phone Numbers to ResourcePool (as ResourceCollection or as individual Resources)

pre-order access line with Phone Number

request reservation of Phone Number

check availabilty of Phone Number

available capacity

extract Phone Number from par tner's Resource Pool

Phone Number (Resource)

create Resource Reservation

update status of Phone Number Resource to reserved

order

place order

create Resource Order

assign Phone Number to Customer,


set status to "active"

Note: The inclusion of Resource Reservation and Order in the diagram is out of scope of the
functionality of the Resource Pool, but shown here only for reasons of illustration.

Remark: Although CSP and/or Partner might not be persons, but e.g. automated

© TM Forum 2024. All Rights Reserved. Page 3


Resource Pool Management User Guide

applications on CSP resp. Partenr side, they are shown as persons, to symbolize that from
the Enterprise’s perspective the occurrence of their requests is out of the Enterprise’s
control.

A Resource Pool represents a collection of Resources of some type, modelled by a


Resource Specification. The Pool can contain specific Capacities of such Resources, without
the need to instanciate the Resources. For example, a range of Phone Number can be
modeled as Capacity in a Pool with having to create individual Resources for the numbers.

The Pool can be filled by either pushing Resource instances into it, or by updating the Pool
with additional Capacities.

The Pool can be queried for a specific amount (capacityDemand) of Resources, and returns
possible options to fulfill the demand. The availabilty check only returns available capacities,
not any individual resources. This avoids that the Resources are used by some follow-up
process; the Pool would then loose control of whether the Resources are still available in the
Pool of have been used elsewhere.

To get individual Resources from the Pool, they can be extracted. Resources that are
extracted from the Pool may or may not be stored in the Resource inventory. How
instantiation of Resources is handled, and in particular if and by which IT component their ID
is generated, is out of scope of the management of the Resource Pool.

© TM Forum 2024. All Rights Reserved. Page 4


Resource Pool Management User Guide

Support of polymorphism and extension


patterns
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, Part 2 (TMF630).

The @type attribute provides a way to represent the actual class type of an entity. For
example, within a list of Account instances some may be instances of BillingAccount where
other could be instances of SettlementAccount. The @type gives this information. All
resources and sub-resources of this API have a @type attributes that can be provided when
this is useful.

The @referredType can be used within reference entities (like for instance an AccountRef
object) to explicitly denote the actual entity type of the referred class. Notice that in reference
entities the @type, when used, denotes the class type of the reference itself, such as
BillingAccountRef or SettlementAccountRef, and not the class type of the referred object.
However since reference classes are rarely sub-classed, @type is generally not useful in
reference objects.

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

© TM Forum 2024. All Rights Reserved. Page 5


Resource Pool Management User Guide

RESOURCE MODEL
Managed Entity and Task Resource Models

CapacitySpecification resource
Capacity is a specific amount of an entity measured in quantity and units of quantity over an
extended period. In essence, a CapacitySpecification defines the common attributes and
relationships of a set of related Capacities, while Capacity defines a specific instance that is
based on a particular CapacitySpecification.

Resource model

© TM Forum 2024. All Rights Reserved. Page 6


Resource Pool Management User Guide

Figure 1 - CapacitySpecification

Field descriptions

CapacitySpecification fields

capacityCharacteristicSpecificatio A CharacteristicSpecification. This class defines a characteristic


n specification.
description A String. Description of this REST resource.

© TM Forum 2024. All Rights Reserved. Page 7


Resource Pool Management User Guide

externalIdentifier An ExternalIdentifier. An identification of an entity that is owned


by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
href A String. Hyperlink reference.
id A String. Unique identifier.
name A String. Name given to this REST resource.
relatedCapacitySpecification A CapacitySpecification. Capacity is a specific amount of an
entity measured in quantity and units of quantity over an
extended period. In essence, a CapacitySpecification defines the
common attributes and relationships of a set of related
Capacities, while Capacity defines a specific instance that is
based on a particular CapacitySpecification.
validFor A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ExternalIdentifier sub-resource fields

externalIdentifierType A String. Type of the identification, typically would be the type of


the entity within the external system.
id A String. Identification of the entity within the external system.
owner A String. Name of the external system that owns the entity.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

CharacteristicSpecification sub-resource fields

© TM Forum 2024. All Rights Reserved. Page 8


Resource Pool Management User Guide

charSpecRelationship A CharacteristicSpecificationRelationship. An aggregation,


migration, substitution, dependency or exclusivity relationship
between/among Characteristic specifications. The specification
characteristic is embedded within the specification whose ID and
href are in this entity, and identified by its ID.
characteristicValueSpecification A CharacteristicValueSpecification. Specification of a value
(number or text or an object) that can be assigned to a
Characteristic. This is an abstract base class, the actual value is
in one of the strongly-typed subclasses :
BooleanArrayCharacteristicValueSpecification,
BooleanCharacteristicValueSpecification,
FloatArrayCharacteristicValueSpecification,
FloatCharacteristicValueSpecification,
IntegerArrayCharacteristicValueSpecification,
IntegerCharacteristicValueSpecification,
MapArrayCharacteristicValueSpecification,
MapCharacteristicValueSpecification,
NumberArrayCharacteristicValueSpecification,
NumberCharacteristicValueSpecification,
ObjectArrayCharacteristicValueSpecification,
ObjectCharacteristicValueSpecification,
StringArrayCharacteristicValueSpecification,
StringCharacteristicValueSpecification…
configurable A Boolean. If true, the Boolean indicates that the target
Characteristic is configurable.
description A String. A narrative that explains the CharacteristicSpecification.
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 a resource.
id A String. Unique ID for the characteristic.
isUnique A Boolean. Specifies if the value of this characteristic is unique
across all entities instantiated from the specification that uses
this characteristic. For example, consider a ProductSpecification
for a set-top box, with a CharacteristicSpecification cardID. Each
set-top box must have a different value for cardID, so this
isUnique attribute would be set to true for the characteristic.
maxCardinality An Integer. The maximum number of instances a
CharacteristicValue can take on. For example, zero to five phone
numbers in a group calling plan, where five is the value for the
maxCardinality.
minCardinality An Integer. The minimum number of instances a
CharacteristicValue can take on. For example, zero to five phone
numbers in a group calling plan, where zero is the value for the
minCardinality.
name A String. A word, term, or phrase by which this characteristic
specification is known and distinguished from other characteristic
specifications.
regex A String. A rule or principle represented in regular expression
used to derive the value of a characteristic value.

© TM Forum 2024. All Rights Reserved. Page 9


Resource Pool Management User Guide

validFor A TimePeriod. A period of time, either as a deadline


(endDateTime only) a startDateTime only, or both.
valueType A String. A kind of value that the characteristic can take on, such
as numeric, text and so forth.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
@valueSchemaLocation A String. This (optional) field provides a link to the schema
describing the value type.

CharacteristicSpecificationRelationship sub-resource fields

characteristicSpecificationId A String. Unique identifier of the characteristic within the


specification.
name A String. Name of the target characteristic within the
specification.
parentSpecificationHref A Uri. Hyperlink reference to the parent specification containing
the target characteristic.
parentSpecificationId A String. Unique identifier of the parent specification containing
the target characteristic.
relationshipType A String. Type of relationship such as aggregation, migration,
substitution, dependency, exclusivity.
validFor A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

CharacteristicValueSpecification sub-resource fields

isDefault A Boolean. If true, the 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".
regex A String. A regular expression constraint for given value.
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.

© TM Forum 2024. All Rights Reserved. Page 10


Resource Pool Management User Guide

validFor A TimePeriod. A period of time, either as a deadline


(endDateTime only) a startDateTime only, or both.
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 value can take on,
such as numeric, text and so forth.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

Json representation sample(s)

The following example demonstrates the details of the CapacitySpecification resource.

{
"@type": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range",
"description": "This CapacitySpecification defines the details of capacity for
Phone Number ranges.",
"capacityCharacteristicSpecification":
[
{
"@type": "CharacteristicSpecification",
"name": "lowerNumber",
"description": "the lower boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "upperNumber",
"description": "the upper boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{

© TM Forum 2024. All Rights Reserved. Page 11


Resource Pool Management User Guide

"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
}
]
}

ResourcePoolSpecification resource
Defines the common characteristics of a specific kind of Resource Pools, including the types
of Capacities that can be handled by Pools of this type. Resource Pools are managed as
(Logical) Resources, and accordingly Resource Pool Specifications are managed the same
way as (Logical) Resource Specification, e.g. put into the Resource Catalog.

Resource model

© TM Forum 2024. All Rights Reserved. Page 12


Resource Pool Management User Guide

Figure 2 - ResourcePoolSpecification
© TM Forum 2024. All Rights Reserved. Page 13
Resource Pool Management User Guide

Figure 3 - ResourceSpecification

Field descriptions

ResourcePoolSpecification fields

attachment An AttachmentRefOrValue. The polymorphic attributes @type,


@schemaLocation & @referredType are related to the
Attachment entity and not the AttachmentRefOrValue class itself.
capacitySpecification A CapacitySpecificationRef. CapacitySpecification reference, for
when CapacitySpecification is used by other entities.
category A String. Category of the target resource like
NetworkConnectivity, PhysicalLinks, Generic, L2Network and so
on.
description A String. Description of this REST resource.

© TM Forum 2024. All Rights Reserved. Page 14


Resource Pool Management User Guide

externalIdentifier An ExternalIdentifier. An identification of an entity that is owned


by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
featureSpecification A FeatureSpecification. Specification for an entity features.
href A String. Hyperlink reference.
id A String. Unique identifier.
intentSpecification An IntentSpecificationRef.
isBundle A Boolean. A flag indicates that if this resource specification is a
bundled specification (true) or single (false).
lastUpdate A DateTime. Date and time of the last update of this REST
resource.
lifecycleStatus A String. Used to indicate the current lifecycle status of the
resource specification.
name A String. Name given to this REST resource.
relatedParty A RelatedPartyRefOrPartyRoleRef. RelatedParty reference. A
related party defines party or party role or its reference, linked to
a specific entity.
resourceSpecCharacteristic A CharacteristicSpecification. This class defines a characteristic
specification.
resourceSpecRelationship A ResourceSpecificationRelationship. A migration, substitution,
dependency or exclusivity relationship between/among resource
specifications.
targetResourceSchema A TargetResourceSchema. The reference object to the schema
and type of target resource which is described by resource
specification.
validFor A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
version A String. Resource Specification version.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

CapacitySpecificationRef sub-resource fields

href A String. Hyperlink reference.

© TM Forum 2024. All Rights Reserved. Page 15


Resource Pool Management User Guide

id A String. Unique identifier.


name A String. Name of the referred entity.
@baseType A String. When sub-classing, this defines the super-class.
@referredType A String. The actual type of the target instance when needed for
disambiguation.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ResourceSpecification sub-resource fields

attachment An AttachmentRefOrValue. The polymorphic attributes @type,


@schemaLocation & @referredType are related to the
Attachment entity and not the AttachmentRefOrValue class itself.
category A String. Category of the target resource like
NetworkConnectivity, PhysicalLinks, Generic, L2Network and so
on.
description A String. Description of this REST resource.
externalIdentifier An ExternalIdentifier. An identification of an entity that is owned
by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
featureSpecification A FeatureSpecification. Specification for an entity features.
href A String. Hyperlink reference.
id A String. Unique identifier.
intentSpecification An IntentSpecificationRef.
isBundle A Boolean. A flag indicates that if this resource specification is a
bundled specification (true) or single (false).
lastUpdate A DateTime. Date and time of the last update of this REST
resource.
lifecycleStatus A String. Used to indicate the current lifecycle status of the
resource specification.
name A String. Name given to this REST resource.
relatedParty A RelatedPartyRefOrPartyRoleRef. RelatedParty reference. A
related party defines party or party role or its reference, linked to
a specific entity.

© TM Forum 2024. All Rights Reserved. Page 16


Resource Pool Management User Guide

resourceSpecCharacteristic A CharacteristicSpecification. This class defines a characteristic


specification.
resourceSpecRelationship A ResourceSpecificationRelationship. A migration, substitution,
dependency or exclusivity relationship between/among resource
specifications.
targetResourceSchema A TargetResourceSchema. The reference object to the schema
and type of target resource which is described by resource
specification.
validFor A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
version A String. Resource Specification version.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
ResourceSpecification can be instanciated as
* LogicalResourceSpecification

LogicalResourceSpecification sub-resource fields

attachment An AttachmentRefOrValue. The polymorphic attributes @type,


@schemaLocation & @referredType are related to the
Attachment entity and not the AttachmentRefOrValue class itself.
category A String. Category of the target resource like
NetworkConnectivity, PhysicalLinks, Generic, L2Network and so
on.
description A String. Description of this REST resource.
externalIdentifier An ExternalIdentifier. An identification of an entity that is owned
by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
featureSpecification A FeatureSpecification. Specification for an entity features.
href A String. Hyperlink reference.
id A String. Unique identifier.
intentSpecification An IntentSpecificationRef.
isBundle A Boolean. A flag indicates that if this resource specification is a
bundled specification (true) or single (false).

© TM Forum 2024. All Rights Reserved. Page 17


Resource Pool Management User Guide

lastUpdate A DateTime. Date and time of the last update of this REST
resource.
lifecycleStatus A String. Used to indicate the current lifecycle status of the
resource specification.
name A String. Name given to this REST resource.
relatedParty A RelatedPartyRefOrPartyRoleRef. RelatedParty reference. A
related party defines party or party role or its reference, linked to
a specific entity.
resourceSpecCharacteristic A CharacteristicSpecification. This class defines a characteristic
specification.
resourceSpecRelationship A ResourceSpecificationRelationship. A migration, substitution,
dependency or exclusivity relationship between/among resource
specifications.
targetResourceSchema A TargetResourceSchema. The reference object to the schema
and type of target resource which is described by resource
specification.
validFor A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
version A String. Resource Specification version.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
LogicalResourceSpecification can be instanciated as
* ResourcePoolSpecification
capacitySpecification This property is present in subclasses

Json representation sample(s)

The following example demonstrates the details of the ResourcePoolSpecification resource.

{
"@type": "ResourcePoolSpecification",
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"name": "Phone Number pool",
"description": "Specifies the details of ResourcePools for Phone Number ranges",
"capacitySpecification":
[
{
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-

© TM Forum 2024. All Rights Reserved. Page 18


Resource Pool Management User Guide

b8802314ff9c",
"name": "Phone Number range"
}
],
"resourceSpecCharacteristic":
[
{
"@type": "CharacteristicSpecification",
"name": "cc",
"description": "Phone Number Country Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d{0,2}$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "ndc",
"description": "Phone Number National Destination Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d*?$"
}
]
}
]
}

ResourcePool resource
Represents a set of Resource of a given type (represented by a ResourceSpecification),
without the need to instantiate all Resource entities, e.g. all phone numbers in a given range.
The amount of Resources in th pool is modelled as Capacity. The Pool can be querried for
some amount (Capacity) of availabile resources; actual Resource instances can be pushed
into the pool, and contained Resources can be extracted. The Pool itself is understood to be
a (Logical) Resource in itself, so it can be managed the same way as any other Resource,
e.g. put into the Resource inventory, and can be associated with some Party and located at
some Place.

Resource model

© TM Forum 2024. All Rights Reserved. Page 19


Resource Pool Management User Guide

Figure 4 - ResourcePool

© TM Forum 2024. All Rights Reserved. Page 20


Resource Pool Management User Guide

Figure 5 - Capacity

© TM Forum 2024. All Rights Reserved. Page 21


Resource Pool Management User Guide

Figure 6 - Resource

Field descriptions

ResourcePool fields

activationFeature A Feature. Configuration feature.


administrativeState A ResourceAdministrativeStateType.
ResourceAdministrativeStateType enumerations; values defined
by ITU X.731: 'locked': The resource is administratively
prohibited from performing services for its users; 'shutdown': Use
of the resource is administratively permitted to existing instances
of use only. While the system remains in the shutting down state
the manager may at any time cause the managed object to
revert to the unlocked state; 'unlocked': The resource is
administratively permitted to perform services for its users. This
is independent of its inherent operability. ENUMERATED with
values:
* locked
* unlocked
* shutdown
attachment An AttachmentRef. Attachment reference. An attachment
complements the description of an element (for instance a
product) through video, pictures.
capacity A Capacity. Specific ability of an entity measured in quantity and
units of quantity over an extended period.
category A String. Category of the concrete resource. e.g Gold, Silver for
MSISDN concrete resource.

© TM Forum 2024. All Rights Reserved. Page 22


Resource Pool Management User Guide

description A String. Free-text description of the resource.


endOperatingDate A DateTime. A date time( DateTime). The date till the resource is
operating.
externalIdentifier An ExternalIdentifier. An identification of an entity that is owned
by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
href A String. Hyperlink reference.
id A String. Unique identifier.
intent An IntentRef. Intent reference, for when Intent is used by other
entities.
name A String. The name of the resource.
note A Note. Extra information about a given entity.
operationalState A ResourceOperationalStateType.
ResourceOperationalStateType enumerations; values defined by
ITU X.731: 'disable': The resource is totally inoperable and
unable to provide service to the user(s); 'enable': The resource is
partially or fully operable and available for use. ENUMERATED
with values:
* enable
* disable
place A RelatedPlaceRef. Entity reference. The polymorphic attributes
@type, @schemaLocation & @referredType are related to the
RelatedPlace entity and not the RelatedPlaceRef class itself.
pooledResource A ResourceRef. Resource reference, for when Resource is used
by other entities.
pooledResourceSpecification A ResourceSpecificationRef. Resources are physical or non-
physical components (or some combination of these) within an
enterprise’s infrastructure or inventory. They are typically
consumed or used by services (for example a physical port
assigned to a service) or contribute to the realization of a Product
(for example, a SIM card). They can be drawn from the
Application, Computing and Network domains, and include, for
example, Network Elements, software, IT systems, content and
information, and technology components. A
ResourceSpecification is an abstract base class for representing
a generic means for implementing a particular type of Resource.
In essence, a ResourceSpecification defines the common
attributes and relationships of a set of related Resources, while
Resource defines a specific instance that is based on a particular
ResourceSpecification.

© TM Forum 2024. All Rights Reserved. Page 23


Resource Pool Management User Guide

relatedParty A RelatedPartyRefOrPartyRoleRef. RelatedParty reference. A


related party defines party or party role or its reference, linked to
a specific entity.
resourceCharacteristic A Characteristic. Describes a given characteristic of an object or
entity through a name/value pair. This is an abstract base class,
the actual value is in one of the strongly-typed subclasses :
StringCharacteristic, ObjectCharacteristic, FloatCharacteristic,
BooleanCharacteristic, NumberCharacteristic,
IntegerCharacteristic, StringArrayCharacteristic,
ObjectArrayCharacteristic, BooleanArrayCharacteristic,
NumberArrayCharacteristic, IntegerArrayCharacteristic…

Characteristic can be instanciated as


* BooleanArrayCharacteristic
* BooleanCharacteristic
* FloatCharacteristic
* IntegerArrayCharacteristic
* IntegerCharacteristic
* NumberArrayCharacteristic
* NumberCharacteristic
* ObjectArrayCharacteristic
* ObjectCharacteristic
* StringArrayCharacteristic
* StringCharacteristic
resourceOrderItem A RelatedResourceOrderItem. RelatedResourceOrderItem (a
ResourceOrder item) .The resource order item which triggered
resource creation/change/termination.
resourceRelationship A ResourceRelationship. Linked resources to the one instantiate,
such as [bundled] if the resource is a bundle and you want to
describe the bundled resources inside this bundle; [reliesOn] if
the resource needs another already owned resource to rely on
(e.g. an option on an already owned mobile access resource)
[targets] or [isTargeted] (depending on the way of expressing the
link) for any other kind of links that may be useful.
resourceSpecification A ResourceSpecificationRef. Resources are physical or non-
physical components (or some combination of these) within an
enterprise’s infrastructure or inventory. They are typically
consumed or used by services (for example a physical port
assigned to a service) or contribute to the realization of a Product
(for example, a SIM card). They can be drawn from the
Application, Computing and Network domains, and include, for
example, Network Elements, software, IT systems, content and
information, and technology components. A
ResourceSpecification is an abstract base class for representing
a generic means for implementing a particular type of Resource.
In essence, a ResourceSpecification defines the common
attributes and relationships of a set of related Resources, while
Resource defines a specific instance that is based on a particular
ResourceSpecification.

© TM Forum 2024. All Rights Reserved. Page 24


Resource Pool Management User Guide

resourceStatus A ResourceStatusType. ResourceStatusType enumerations.


ENUMERATED with values:
* alarm
* available
* installed
* not exists
* pendingRemoval
* planned
* reserved
* standby
* suspended
* unknown
resourceVersion A String. A field that identifies the specific version of an instance
of a resource.
startOperatingDate A DateTime. A date time( DateTime). The date from which the
resource is operating.
supportingResource A ResourceRefOrValue. The polymorphic attributes @type,
@schemaLocation & @referredType are related to the Resource
entity and not the ResourceRefOrValue class itself.
usageState A ResourceUsageStateType. ResourceUsageStateType
enumerations; values defined by ITU X.731: 'idle': The resource
is not currently in use; 'active': The resource is in use, and has
sufficient spare operating capacity to provide for additional users
simultaneously; 'busy': The resource is in use, but it has no spare
operating capacity to provide for additional users at this instant.
ENUMERATED with values:
* idle
* active
* busy
validFor A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
value A String. The value of the logical resource. E.g '0746712345' for
MSISDN’s.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

Capacity sub-resource fields

applicableTimePeriod An ApplicableTimePeriod. The period of time for which Capacity


or CapacityDemand applies.
capacityAmount A Quantity. An amount in a given unit.
capacityAmountFrom A Quantity. An amount in a given unit.
capacityAmountTo A Quantity. An amount in a given unit.

© TM Forum 2024. All Rights Reserved. Page 25


Resource Pool Management User Guide

capacityCharacteristic A Characteristic. Describes a given characteristic of an object or


entity through a name/value pair. This is an abstract base class,
the actual value is in one of the strongly-typed subclasses :
StringCharacteristic, ObjectCharacteristic, FloatCharacteristic,
BooleanCharacteristic, NumberCharacteristic,
IntegerCharacteristic, StringArrayCharacteristic,
ObjectArrayCharacteristic, BooleanArrayCharacteristic,
NumberArrayCharacteristic, IntegerArrayCharacteristic…

Characteristic can be instanciated as


* BooleanArrayCharacteristic
* BooleanCharacteristic
* FloatCharacteristic
* IntegerArrayCharacteristic
* IntegerCharacteristic
* NumberArrayCharacteristic
* NumberCharacteristic
* ObjectArrayCharacteristic
* ObjectCharacteristic
* StringArrayCharacteristic
* StringCharacteristic
capacitySpecification A CapacitySpecificationRef. CapacitySpecification reference, for
when CapacitySpecification is used by other entities.
capacityStatus A CapacityStatus. An indicator that specifies whether the
capacity is planned or actual. ENUMERATED with values:
* planned
* actual
href A String. Hyperlink reference.
id A String. Unique identifier.
name A String. Name of the Capacity; used to refer to the
CapacitySpecification.
rangeInterval A String. An indicator that specifies the inclusion or exclusion of
the capacityAmount From and capacityAmountTo attributes.
Possible values are "open", "closed", "closedBottom" and
"closedTop".
relatedCapacity A Capacity. Specific ability of an entity measured in quantity and
units of quantity over an extended period.
relatedPlace A RelatedPlaceRef. Entity reference. The polymorphic attributes
@type, @schemaLocation & @referredType are related to the
RelatedPlace entity and not the RelatedPlaceRef class itself.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ResourceRef sub-resource fields

© TM Forum 2024. All Rights Reserved. Page 26


Resource Pool Management User Guide

href A String. Hyperlink reference.


id A String. Unique identifier.
name A String. Name of the referred entity.
@baseType A String. When sub-classing, this defines the super-class.
@referredType A String. The actual type of the target instance when needed for
disambiguation.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ResourceSpecificationRef sub-resource fields

href A String. Hyperlink reference.


id A String. Unique identifier.
name A String. Name of the referred entity.
version A String. Resource Specification version.
@baseType A String. When sub-classing, this defines the super-class.
@referredType A String. The actual type of the target instance when needed for
disambiguation.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

CapacitySpecificationRef sub-resource fields

href A String. Hyperlink reference.


id A String. Unique identifier.
name A String. Name of the referred entity.
@baseType A String. When sub-classing, this defines the super-class.
@referredType A String. The actual type of the target instance when needed for
disambiguation.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

Characteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.

© TM Forum 2024. All Rights Reserved. Page 27


Resource Pool Management User Guide

id A String. Unique identifier of the characteristic.


name A String. Name of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
Characteristic can be instanciated as
* BooleanArrayCharacteristic
* BooleanCharacteristic
* FloatCharacteristic
* IntegerArrayCharacteristic
* IntegerCharacteristic
* NumberArrayCharacteristic
* NumberCharacteristic
* ObjectArrayCharacteristic
* ObjectCharacteristic
* StringArrayCharacteristic
* StringCharacteristic
value This property is present in subclasses

FloatCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Float. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ObjectCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value An object. Value of the characteristic.

© TM Forum 2024. All Rights Reserved. Page 28


Resource Pool Management User Guide

valueType A String. Data type of the value of the characteristic.


@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

NumberCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Number. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

BooleanArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Boolean. A characteristic which value is an array of
Boolean(s).
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

BooleanCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.

© TM Forum 2024. All Rights Reserved. Page 29


Resource Pool Management User Guide

value A Boolean. Value of the characteristic.


valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

NumberArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Number. A characteristic which value is an array of Number(s).
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

IntegerCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value An Integer. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ObjectArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.

© TM Forum 2024. All Rights Reserved. Page 30


Resource Pool Management User Guide

name A String. Name of the characteristic.


value An object. Collection of characteristic values.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

StringArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A String. Collection of string characteristics.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

IntegerArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value An Integer. A characteristic which value is an array of Integer(s).
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

StringCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.

© TM Forum 2024. All Rights Reserved. Page 31


Resource Pool Management User Guide

id A String. Unique identifier of the characteristic.


name A String. Name of the characteristic.
value A String. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

RelatedPlaceRef sub-resource fields

place A PlaceRef. Place reference.


role A String.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ApplicableTimePeriod sub-resource fields

dayOfWeek A String. A day or days representing when the schedule is


applicable. For example 2, 3 represent Monday and Tuesday.
fromToDateTime A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
rangeInterval A String. An indicator that specifies the inclusion or exclusion of
the from and to DateTime attributes. Possible values are "open",
"closed", "closedBottom" and "closedTop".
validFor A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

CharacteristicRelationship sub-resource fields

id A String. Unique identifier of the characteristic.


relationshipType A String. The type of relationship.
@baseType A String. When sub-classing, this defines the super-class.

© TM Forum 2024. All Rights Reserved. Page 32


Resource Pool Management User Guide

@schemaLocation A String. A URI to a JSON-Schema file that defines additional


attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

PlaceRef sub-resource fields

href A String. Hyperlink reference.


id A String. Unique identifier.
name A String. Name of the referred entity.
@baseType A String. When sub-classing, this defines the super-class.
@referredType A String. The actual type of the target instance when needed for
disambiguation.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

Resource sub-resource fields

activationFeature A Feature. Configuration feature.


administrativeState A ResourceAdministrativeStateType.
ResourceAdministrativeStateType enumerations; values defined
by ITU X.731: 'locked': The resource is administratively
prohibited from performing services for its users; 'shutdown': Use
of the resource is administratively permitted to existing instances
of use only. While the system remains in the shutting down state
the manager may at any time cause the managed object to
revert to the unlocked state; 'unlocked': The resource is
administratively permitted to perform services for its users. This
is independent of its inherent operability. ENUMERATED with
values:
* locked
* unlocked
* shutdown
attachment An AttachmentRef. Attachment reference. An attachment
complements the description of an element (for instance a
product) through video, pictures.
category A String. Category of the concrete resource. e.g Gold, Silver for
MSISDN concrete resource.
description A String. Free-text description of the resource.
endOperatingDate A DateTime. A date time( DateTime). The date till the resource is
operating.

© TM Forum 2024. All Rights Reserved. Page 33


Resource Pool Management User Guide

externalIdentifier An ExternalIdentifier. An identification of an entity that is owned


by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
href A String. Hyperlink reference.
id A String. Unique identifier.
intent An IntentRef. Intent reference, for when Intent is used by other
entities.
name A String. The name of the resource.
note A Note. Extra information about a given entity.
operationalState A ResourceOperationalStateType.
ResourceOperationalStateType enumerations; values defined by
ITU X.731: 'disable': The resource is totally inoperable and
unable to provide service to the user(s); 'enable': The resource is
partially or fully operable and available for use. ENUMERATED
with values:
* enable
* disable
place A RelatedPlaceRef. Entity reference. The polymorphic attributes
@type, @schemaLocation & @referredType are related to the
RelatedPlace entity and not the RelatedPlaceRef class itself.
relatedParty A RelatedPartyRefOrPartyRoleRef. RelatedParty reference. A
related party defines party or party role or its reference, linked to
a specific entity.

© TM Forum 2024. All Rights Reserved. Page 34


Resource Pool Management User Guide

resourceCharacteristic A Characteristic. Describes a given characteristic of an object or


entity through a name/value pair. This is an abstract base class,
the actual value is in one of the strongly-typed subclasses :
StringCharacteristic, ObjectCharacteristic, FloatCharacteristic,
BooleanCharacteristic, NumberCharacteristic,
IntegerCharacteristic, StringArrayCharacteristic,
ObjectArrayCharacteristic, BooleanArrayCharacteristic,
NumberArrayCharacteristic, IntegerArrayCharacteristic…

Characteristic can be instanciated as


* BooleanArrayCharacteristic
* BooleanCharacteristic
* FloatCharacteristic
* IntegerArrayCharacteristic
* IntegerCharacteristic
* NumberArrayCharacteristic
* NumberCharacteristic
* ObjectArrayCharacteristic
* ObjectCharacteristic
* StringArrayCharacteristic
* StringCharacteristic
resourceOrderItem A RelatedResourceOrderItem. RelatedResourceOrderItem (a
ResourceOrder item) .The resource order item which triggered
resource creation/change/termination.
resourceRelationship A ResourceRelationship. Linked resources to the one instantiate,
such as [bundled] if the resource is a bundle and you want to
describe the bundled resources inside this bundle; [reliesOn] if
the resource needs another already owned resource to rely on
(e.g. an option on an already owned mobile access resource)
[targets] or [isTargeted] (depending on the way of expressing the
link) for any other kind of links that may be useful.
resourceSpecification A ResourceSpecificationRef. Resources are physical or non-
physical components (or some combination of these) within an
enterprise’s infrastructure or inventory. They are typically
consumed or used by services (for example a physical port
assigned to a service) or contribute to the realization of a Product
(for example, a SIM card). They can be drawn from the
Application, Computing and Network domains, and include, for
example, Network Elements, software, IT systems, content and
information, and technology components. A
ResourceSpecification is an abstract base class for representing
a generic means for implementing a particular type of Resource.
In essence, a ResourceSpecification defines the common
attributes and relationships of a set of related Resources, while
Resource defines a specific instance that is based on a particular
ResourceSpecification.

© TM Forum 2024. All Rights Reserved. Page 35


Resource Pool Management User Guide

resourceStatus A ResourceStatusType. ResourceStatusType enumerations.


ENUMERATED with values:
* alarm
* available
* installed
* not exists
* pendingRemoval
* planned
* reserved
* standby
* suspended
* unknown
resourceVersion A String. A field that identifies the specific version of an instance
of a resource.
startOperatingDate A DateTime. A date time( DateTime). The date from which the
resource is operating.
supportingResource A ResourceRefOrValue. The polymorphic attributes @type,
@schemaLocation & @referredType are related to the Resource
entity and not the ResourceRefOrValue class itself.
usageState A ResourceUsageStateType. ResourceUsageStateType
enumerations; values defined by ITU X.731: 'idle': The resource
is not currently in use; 'active': The resource is in use, and has
sufficient spare operating capacity to provide for additional users
simultaneously; 'busy': The resource is in use, but it has no spare
operating capacity to provide for additional users at this instant.
ENUMERATED with values:
* idle
* active
* busy
validFor A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
Resource can be instanciated as
* LogicalResource
value This property is present in subclasses

LogicalResource sub-resource fields

activationFeature A Feature. Configuration feature.

© TM Forum 2024. All Rights Reserved. Page 36


Resource Pool Management User Guide

administrativeState A ResourceAdministrativeStateType.
ResourceAdministrativeStateType enumerations; values defined
by ITU X.731: 'locked': The resource is administratively
prohibited from performing services for its users; 'shutdown': Use
of the resource is administratively permitted to existing instances
of use only. While the system remains in the shutting down state
the manager may at any time cause the managed object to
revert to the unlocked state; 'unlocked': The resource is
administratively permitted to perform services for its users. This
is independent of its inherent operability. ENUMERATED with
values:
* locked
* unlocked
* shutdown
attachment An AttachmentRef. Attachment reference. An attachment
complements the description of an element (for instance a
product) through video, pictures.
category A String. Category of the concrete resource. e.g Gold, Silver for
MSISDN concrete resource.
description A String. Free-text description of the resource.
endOperatingDate A DateTime. A date time( DateTime). The date till the resource is
operating.
externalIdentifier An ExternalIdentifier. An identification of an entity that is owned
by or originates in a software system different from the current
system, for example a ProductOrder handed off from a
commerce platform into an order handling system. The structure
identifies the system itself, the nature of the entity within the
system (e.g. class name) and the unique ID of the entity within
the system. It is anticipated that multiple external IDs can be held
for a single entity, e.g. if the entity passed through multiple
systems on the way to the current system. In this case the
consumer is expected to sequence the IDs in the array in reverse
order of provenance, i.e. most recent system first in the list.
href A String. Hyperlink reference.
id A String. Unique identifier.
intent An IntentRef. Intent reference, for when Intent is used by other
entities.
name A String. The name of the resource.
note A Note. Extra information about a given entity.
operationalState A ResourceOperationalStateType.
ResourceOperationalStateType enumerations; values defined by
ITU X.731: 'disable': The resource is totally inoperable and
unable to provide service to the user(s); 'enable': The resource is
partially or fully operable and available for use. ENUMERATED
with values:
* enable
* disable

© TM Forum 2024. All Rights Reserved. Page 37


Resource Pool Management User Guide

place A RelatedPlaceRef. Entity reference. The polymorphic attributes


@type, @schemaLocation & @referredType are related to the
RelatedPlace entity and not the RelatedPlaceRef class itself.
relatedParty A RelatedPartyRefOrPartyRoleRef. RelatedParty reference. A
related party defines party or party role or its reference, linked to
a specific entity.
resourceCharacteristic A Characteristic. Describes a given characteristic of an object or
entity through a name/value pair. This is an abstract base class,
the actual value is in one of the strongly-typed subclasses :
StringCharacteristic, ObjectCharacteristic, FloatCharacteristic,
BooleanCharacteristic, NumberCharacteristic,
IntegerCharacteristic, StringArrayCharacteristic,
ObjectArrayCharacteristic, BooleanArrayCharacteristic,
NumberArrayCharacteristic, IntegerArrayCharacteristic…

Characteristic can be instanciated as


* BooleanArrayCharacteristic
* BooleanCharacteristic
* FloatCharacteristic
* IntegerArrayCharacteristic
* IntegerCharacteristic
* NumberArrayCharacteristic
* NumberCharacteristic
* ObjectArrayCharacteristic
* ObjectCharacteristic
* StringArrayCharacteristic
* StringCharacteristic
resourceOrderItem A RelatedResourceOrderItem. RelatedResourceOrderItem (a
ResourceOrder item) .The resource order item which triggered
resource creation/change/termination.
resourceRelationship A ResourceRelationship. Linked resources to the one instantiate,
such as [bundled] if the resource is a bundle and you want to
describe the bundled resources inside this bundle; [reliesOn] if
the resource needs another already owned resource to rely on
(e.g. an option on an already owned mobile access resource)
[targets] or [isTargeted] (depending on the way of expressing the
link) for any other kind of links that may be useful.
resourceSpecification A ResourceSpecificationRef. Resources are physical or non-
physical components (or some combination of these) within an
enterprise’s infrastructure or inventory. They are typically
consumed or used by services (for example a physical port
assigned to a service) or contribute to the realization of a Product
(for example, a SIM card). They can be drawn from the
Application, Computing and Network domains, and include, for
example, Network Elements, software, IT systems, content and
information, and technology components. A
ResourceSpecification is an abstract base class for representing
a generic means for implementing a particular type of Resource.
In essence, a ResourceSpecification defines the common
attributes and relationships of a set of related Resources, while
Resource defines a specific instance that is based on a particular
ResourceSpecification.

© TM Forum 2024. All Rights Reserved. Page 38


Resource Pool Management User Guide

resourceStatus A ResourceStatusType. ResourceStatusType enumerations.


ENUMERATED with values:
* alarm
* available
* installed
* not exists
* pendingRemoval
* planned
* reserved
* standby
* suspended
* unknown
resourceVersion A String. A field that identifies the specific version of an instance
of a resource.
startOperatingDate A DateTime. A date time( DateTime). The date from which the
resource is operating.
supportingResource A ResourceRefOrValue. The polymorphic attributes @type,
@schemaLocation & @referredType are related to the Resource
entity and not the ResourceRefOrValue class itself.
usageState A ResourceUsageStateType. ResourceUsageStateType
enumerations; values defined by ITU X.731: 'idle': The resource
is not currently in use; 'active': The resource is in use, and has
sufficient spare operating capacity to provide for additional users
simultaneously; 'busy': The resource is in use, but it has no spare
operating capacity to provide for additional users at this instant.
ENUMERATED with values:
* idle
* active
* busy
validFor A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
value A String. The value of the logical resource. E.g '0746712345' for
MSISDN’s.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
LogicalResource can be instanciated as
* ResourcePool
capacity This property is present in subclasses
pooledResource This property is present in subclasses
pooledResourceSpecification This property is present in subclasses

Json representation sample(s)

The following example demonstrates the details of the ResourcePool resource.

© TM Forum 2024. All Rights Reserved. Page 39


Resource Pool Management User Guide

{
"@type": "ResourcePool",
"id": "c3fef858-b864-4fac-971e-795b1195ded9",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-795b1195ded9",
"name": "Phone Number block for partner MyPartner",
"description": "This Pool collects the PhoneNumber resources assigned to the
partner MyPartner.",
"pooledResourceSpecification":
{
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification",
"id": "89afac38-32e2-40f8-8be2-7b86dd03c9c9",
"href": "https://{server}:{port}/tmf-
api/resourceCatalogManagement/v5/resourceSpecification/89afac38-32e2-40f8-8be2-
7b86dd03c9c9",
"name": "Phone Number"
},
"resourceCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "cc",
"valueType": "string",
"value": "49"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "ndc",
"valueType": "string",
"value": "228"
}
],
"capacity":
[
{
"@type": "Capacity",
"id": "cf8d1665-a3cc-470c-97eb-782f226075ce",
"href": "https://{server}:{port}/tmf-
api/resourcePool/v5/capacity/cf8d1665-a3cc-470c-97eb-782f226075ce",
"name": "Capacity of Phone Number pool for MyPartner",
"capacitySpecification": {
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification"
},
"capacityStatus": "actual",
"capacityAmount":
{
"amount": 1000,
"units": "number"
},
"capacityCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
© TM Forum 2024. All Rights Reserved. Page 40
Resource Pool Management User Guide

"name": "lowerNumber",
"valueType": "string",
"value": "+49-228-181-000"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "upperNumber",
"valueType": "string",
"value": "+49-228-181-999"
}
]
}
],
"resourceSpecification":
{
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourcePoolSpecification"
},
"relatedParty":
[
{
"@type": "RelatedPartyRefOrPartyRoleRef",
"role": "Partner",
"partyOrPartyRole":
{
"@type": "PartyRef",
"@referredType": "Organization",
"id": "47abd723-d3ca-49d8-ba53-76aa62e867e9",
"href": "https://{server}:{port}/tmf-
api/partyManagement/v5/organization/47abd723-d3ca-49d8-ba53-76aa62e867e9",
"name": "MyPartner"
}
}
]
}

AvailabilityCheck resource
A task resource that queries for a demanded capacity and returns the available capacities
that can be used to fulfil the demand.

Resource model

© TM Forum 2024. All Rights Reserved. Page 41


Resource Pool Management User Guide

Figure 7 - AvailabilityCheck
© TM Forum 2024. All Rights Reserved. Page 42
Resource Pool Management User Guide

Figure 8 - Capacity

Field descriptions

© TM Forum 2024. All Rights Reserved. Page 43


Resource Pool Management User Guide

AvailabilityCheck fields

capacityDemand A Capacity. Specific ability of an entity measured in quantity and


units of quantity over an extended period.
capacityOption A Capacity. Specific ability of an entity measured in quantity and
units of quantity over an extended period.
errorMessage An ErrorMessage. Represents an Error.
href A String. Hyperlink reference.
id A String. Unique identifier.
state A TaskStateType. Possible values for the state of a task.
ENUMERATED with values:
* acknowledged
* rejected
* inProgress
* cancelled
* done
* terminatedWithError
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

Capacity sub-resource fields

applicableTimePeriod An ApplicableTimePeriod. The period of time for which Capacity


or CapacityDemand applies.
capacityAmount A Quantity. An amount in a given unit.
capacityAmountFrom A Quantity. An amount in a given unit.
capacityAmountTo A Quantity. An amount in a given unit.

© TM Forum 2024. All Rights Reserved. Page 44


Resource Pool Management User Guide

capacityCharacteristic A Characteristic. Describes a given characteristic of an object or


entity through a name/value pair. This is an abstract base class,
the actual value is in one of the strongly-typed subclasses :
StringCharacteristic, ObjectCharacteristic, FloatCharacteristic,
BooleanCharacteristic, NumberCharacteristic,
IntegerCharacteristic, StringArrayCharacteristic,
ObjectArrayCharacteristic, BooleanArrayCharacteristic,
NumberArrayCharacteristic, IntegerArrayCharacteristic…

Characteristic can be instanciated as


* BooleanArrayCharacteristic
* BooleanCharacteristic
* FloatCharacteristic
* IntegerArrayCharacteristic
* IntegerCharacteristic
* NumberArrayCharacteristic
* NumberCharacteristic
* ObjectArrayCharacteristic
* ObjectCharacteristic
* StringArrayCharacteristic
* StringCharacteristic
capacitySpecification A CapacitySpecificationRef. CapacitySpecification reference, for
when CapacitySpecification is used by other entities.
capacityStatus A CapacityStatus. An indicator that specifies whether the
capacity is planned or actual. ENUMERATED with values:
* planned
* actual
href A String. Hyperlink reference.
id A String. Unique identifier.
name A String. Name of the Capacity; used to refer to the
CapacitySpecification.
rangeInterval A String. An indicator that specifies the inclusion or exclusion of
the capacityAmount From and capacityAmountTo attributes.
Possible values are "open", "closed", "closedBottom" and
"closedTop".
relatedCapacity A Capacity. Specific ability of an entity measured in quantity and
units of quantity over an extended period.
relatedPlace A RelatedPlaceRef. Entity reference. The polymorphic attributes
@type, @schemaLocation & @referredType are related to the
RelatedPlace entity and not the RelatedPlaceRef class itself.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

CapacitySpecificationRef sub-resource fields

© TM Forum 2024. All Rights Reserved. Page 45


Resource Pool Management User Guide

href A String. Hyperlink reference.


id A String. Unique identifier.
name A String. Name of the referred entity.
@baseType A String. When sub-classing, this defines the super-class.
@referredType A String. The actual type of the target instance when needed for
disambiguation.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

Characteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
Characteristic can be instanciated as
* BooleanArrayCharacteristic
* BooleanCharacteristic
* FloatCharacteristic
* IntegerArrayCharacteristic
* IntegerCharacteristic
* NumberArrayCharacteristic
* NumberCharacteristic
* ObjectArrayCharacteristic
* ObjectCharacteristic
* StringArrayCharacteristic
* StringCharacteristic
value This property is present in subclasses

FloatCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Float. Value of the characteristic.

© TM Forum 2024. All Rights Reserved. Page 46


Resource Pool Management User Guide

valueType A String. Data type of the value of the characteristic.


@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ObjectCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value An object. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

NumberCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Number. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

BooleanArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.

© TM Forum 2024. All Rights Reserved. Page 47


Resource Pool Management User Guide

value A Boolean. A characteristic which value is an array of


Boolean(s).
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

BooleanCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Boolean. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

NumberArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Number. A characteristic which value is an array of Number(s).
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

IntegerCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.

© TM Forum 2024. All Rights Reserved. Page 48


Resource Pool Management User Guide

name A String. Name of the characteristic.


value An Integer. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ObjectArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value An object. Collection of characteristic values.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

StringArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A String. Collection of string characteristics.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

IntegerArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.

© TM Forum 2024. All Rights Reserved. Page 49


Resource Pool Management User Guide

id A String. Unique identifier of the characteristic.


name A String. Name of the characteristic.
value An Integer. A characteristic which value is an array of Integer(s).
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

StringCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A String. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

RelatedPlaceRef sub-resource fields

place A PlaceRef. Place reference.


role A String.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ApplicableTimePeriod sub-resource fields

dayOfWeek A String. A day or days representing when the schedule is


applicable. For example 2, 3 represent Monday and Tuesday.
fromToDateTime A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.

© TM Forum 2024. All Rights Reserved. Page 50


Resource Pool Management User Guide

rangeInterval A String. An indicator that specifies the inclusion or exclusion of


the from and to DateTime attributes. Possible values are "open",
"closed", "closedBottom" and "closedTop".
validFor A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

CharacteristicRelationship sub-resource fields

id A String. Unique identifier of the characteristic.


relationshipType A String. The type of relationship.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

PlaceRef sub-resource fields

href A String. Hyperlink reference.


id A String. Unique identifier.
name A String. Name of the referred entity.
@baseType A String. When sub-classing, this defines the super-class.
@referredType A String. The actual type of the target instance when needed for
disambiguation.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

TaskResource sub-resource fields

errorMessage An ErrorMessage. Represents an Error.


href A String. Hyperlink reference.
id A String. Unique identifier.

© TM Forum 2024. All Rights Reserved. Page 51


Resource Pool Management User Guide

state A TaskStateType. Possible values for the state of a task.


ENUMERATED with values:
* acknowledged
* rejected
* inProgress
* cancelled
* done
* terminatedWithError
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
TaskResource can be instanciated as
* AvailabilityCheck
* Extract
* Push
capacityDemand This property is present in subclasses
capacityOption This property is present in subclasses
extractedResource This property is present in subclasses
pushedResource This property is present in subclasses

Extract sub-resource fields

capacityDemand A Capacity. Specific ability of an entity measured in quantity and


units of quantity over an extended period.
errorMessage An ErrorMessage. Represents an Error.
extractedResource A ResourceRef. Resource reference, for when Resource is used
by other entities.
href A String. Hyperlink reference.
id A String. Unique identifier.
state A TaskStateType. Possible values for the state of a task.
ENUMERATED with values:
* acknowledged
* rejected
* inProgress
* cancelled
* done
* terminatedWithError
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

© TM Forum 2024. All Rights Reserved. Page 52


Resource Pool Management User Guide

Push sub-resource fields

errorMessage An ErrorMessage. Represents an Error.


href A String. Hyperlink reference.
id A String. Unique identifier.
pushedResource A ResourceRef. Resource reference, for when Resource is used
by other entities.
state A TaskStateType. Possible values for the state of a task.
ENUMERATED with values:
* acknowledged
* rejected
* inProgress
* cancelled
* done
* terminatedWithError
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

Json representation sample(s)

The following example demonstrates the details of the AvailabilityCheck resource.

{
"@type": "AvailabilityCheck",
"id": "8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/availabilityCheck/8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"capacityDemand":
{
"@type": "Capacity",
"capacityAmount":
{
"amount": 1,
"units": "number"
}
},
"state": "inProgress"
}

Push resource
A task resource that inserts a set of individual Resource instances into a Resource Pool and
thus increases the capacity of the Pool.

Resource model

© TM Forum 2024. All Rights Reserved. Page 53


Resource Pool Management User Guide

Figure 9 - Push

Field descriptions

Push fields

errorMessage An ErrorMessage. Represents an Error.


href A String. Hyperlink reference.
id A String. Unique identifier.

© TM Forum 2024. All Rights Reserved. Page 54


Resource Pool Management User Guide

pushedResource A ResourceRef. Resource reference, for when Resource is used


by other entities.
state A TaskStateType. Possible values for the state of a task.
ENUMERATED with values:
* acknowledged
* rejected
* inProgress
* cancelled
* done
* terminatedWithError
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ResourceRef sub-resource fields

href A String. Hyperlink reference.


id A String. Unique identifier.
name A String. Name of the referred entity.
@baseType A String. When sub-classing, this defines the super-class.
@referredType A String. The actual type of the target instance when needed for
disambiguation.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

TaskResource sub-resource fields

errorMessage An ErrorMessage. Represents an Error.


href A String. Hyperlink reference.
id A String. Unique identifier.
state A TaskStateType. Possible values for the state of a task.
ENUMERATED with values:
* acknowledged
* rejected
* inProgress
* cancelled
* done
* terminatedWithError
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.

© TM Forum 2024. All Rights Reserved. Page 55


Resource Pool Management User Guide

@type A String. When sub-classing, this defines the sub-class


Extensible name.
TaskResource can be instanciated as
* AvailabilityCheck
* Extract
* Push
capacityDemand This property is present in subclasses
capacityOption This property is present in subclasses
extractedResource This property is present in subclasses
pushedResource This property is present in subclasses

Extract sub-resource fields

capacityDemand A Capacity. Specific ability of an entity measured in quantity and


units of quantity over an extended period.
errorMessage An ErrorMessage. Represents an Error.
extractedResource A ResourceRef. Resource reference, for when Resource is used
by other entities.
href A String. Hyperlink reference.
id A String. Unique identifier.
state A TaskStateType. Possible values for the state of a task.
ENUMERATED with values:
* acknowledged
* rejected
* inProgress
* cancelled
* done
* terminatedWithError
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

AvailabilityCheck sub-resource fields

capacityDemand A Capacity. Specific ability of an entity measured in quantity and


units of quantity over an extended period.
capacityOption A Capacity. Specific ability of an entity measured in quantity and
units of quantity over an extended period.
errorMessage An ErrorMessage. Represents an Error.
href A String. Hyperlink reference.
id A String. Unique identifier.

© TM Forum 2024. All Rights Reserved. Page 56


Resource Pool Management User Guide

state A TaskStateType. Possible values for the state of a task.


ENUMERATED with values:
* acknowledged
* rejected
* inProgress
* cancelled
* done
* terminatedWithError
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

Json representation sample(s)

The following example demonstrates the details of the Push resource.

{
"@type": "Push",
"id": "ae63d76e-6d00-45aa-97a6-c8a2b54390e5",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/push/ae63d76e-6d00-45aa-97a6-c8a2b54390e5",
"pushedResource":
[
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "4d179a07-1555-4e5f-a2de-0a51f5dd7e15",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/4d179a07-1555-4e5f-a2de-0a51f5dd7e15"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "15dfa8a7-f9db-43a8-8758-9d9df5a76264",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/15dfa8a7-f9db-43a8-8758-9d9df5a76264"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "195aa8ee-7560-4d97-9b9a-2add1a4e0372",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/195aa8ee-7560-4d97-9b9a-2add1a4e0372"
}
],
"state": "inProgress"
}

Extract resource
A task resource that extracts a demanded capacity of Resources from a Resource Pool and
reduces the remaining capacity of the Pool.
© TM Forum 2024. All Rights Reserved. Page 57
Resource Pool Management User Guide

Resource model

Figure 10 - Extract

© TM Forum 2024. All Rights Reserved. Page 58


Resource Pool Management User Guide

Figure 11 - Capacity

Field descriptions

© TM Forum 2024. All Rights Reserved. Page 59


Resource Pool Management User Guide

Extract fields

capacityDemand A Capacity. Specific ability of an entity measured in quantity and


units of quantity over an extended period.
errorMessage An ErrorMessage. Represents an Error.
extractedResource A ResourceRef. Resource reference, for when Resource is used
by other entities.
href A String. Hyperlink reference.
id A String. Unique identifier.
state A TaskStateType. Possible values for the state of a task.
ENUMERATED with values:
* acknowledged
* rejected
* inProgress
* cancelled
* done
* terminatedWithError
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

Capacity sub-resource fields

applicableTimePeriod An ApplicableTimePeriod. The period of time for which Capacity


or CapacityDemand applies.
capacityAmount A Quantity. An amount in a given unit.
capacityAmountFrom A Quantity. An amount in a given unit.
capacityAmountTo A Quantity. An amount in a given unit.

© TM Forum 2024. All Rights Reserved. Page 60


Resource Pool Management User Guide

capacityCharacteristic A Characteristic. Describes a given characteristic of an object or


entity through a name/value pair. This is an abstract base class,
the actual value is in one of the strongly-typed subclasses :
StringCharacteristic, ObjectCharacteristic, FloatCharacteristic,
BooleanCharacteristic, NumberCharacteristic,
IntegerCharacteristic, StringArrayCharacteristic,
ObjectArrayCharacteristic, BooleanArrayCharacteristic,
NumberArrayCharacteristic, IntegerArrayCharacteristic…

Characteristic can be instanciated as


* BooleanArrayCharacteristic
* BooleanCharacteristic
* FloatCharacteristic
* IntegerArrayCharacteristic
* IntegerCharacteristic
* NumberArrayCharacteristic
* NumberCharacteristic
* ObjectArrayCharacteristic
* ObjectCharacteristic
* StringArrayCharacteristic
* StringCharacteristic
capacitySpecification A CapacitySpecificationRef. CapacitySpecification reference, for
when CapacitySpecification is used by other entities.
capacityStatus A CapacityStatus. An indicator that specifies whether the
capacity is planned or actual. ENUMERATED with values:
* planned
* actual
href A String. Hyperlink reference.
id A String. Unique identifier.
name A String. Name of the Capacity; used to refer to the
CapacitySpecification.
rangeInterval A String. An indicator that specifies the inclusion or exclusion of
the capacityAmount From and capacityAmountTo attributes.
Possible values are "open", "closed", "closedBottom" and
"closedTop".
relatedCapacity A Capacity. Specific ability of an entity measured in quantity and
units of quantity over an extended period.
relatedPlace A RelatedPlaceRef. Entity reference. The polymorphic attributes
@type, @schemaLocation & @referredType are related to the
RelatedPlace entity and not the RelatedPlaceRef class itself.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ResourceRef sub-resource fields

© TM Forum 2024. All Rights Reserved. Page 61


Resource Pool Management User Guide

href A String. Hyperlink reference.


id A String. Unique identifier.
name A String. Name of the referred entity.
@baseType A String. When sub-classing, this defines the super-class.
@referredType A String. The actual type of the target instance when needed for
disambiguation.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

CapacitySpecificationRef sub-resource fields

href A String. Hyperlink reference.


id A String. Unique identifier.
name A String. Name of the referred entity.
@baseType A String. When sub-classing, this defines the super-class.
@referredType A String. The actual type of the target instance when needed for
disambiguation.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

Characteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

© TM Forum 2024. All Rights Reserved. Page 62


Resource Pool Management User Guide

Characteristic can be instanciated as


* BooleanArrayCharacteristic
* BooleanCharacteristic
* FloatCharacteristic
* IntegerArrayCharacteristic
* IntegerCharacteristic
* NumberArrayCharacteristic
* NumberCharacteristic
* ObjectArrayCharacteristic
* ObjectCharacteristic
* StringArrayCharacteristic
* StringCharacteristic
value This property is present in subclasses

FloatCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Float. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ObjectCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value An object. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

NumberCharacteristic sub-resource fields

© TM Forum 2024. All Rights Reserved. Page 63


Resource Pool Management User Guide

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Number. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

BooleanArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Boolean. A characteristic which value is an array of
Boolean(s).
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

BooleanCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Boolean. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

NumberArrayCharacteristic sub-resource fields


© TM Forum 2024. All Rights Reserved. Page 64
Resource Pool Management User Guide

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A Number. A characteristic which value is an array of Number(s).
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

IntegerCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value An Integer. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ObjectArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value An object. Collection of characteristic values.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

StringArrayCharacteristic sub-resource fields

© TM Forum 2024. All Rights Reserved. Page 65


Resource Pool Management User Guide

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A String. Collection of string characteristics.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

IntegerArrayCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value An Integer. A characteristic which value is an array of Integer(s).
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

StringCharacteristic sub-resource fields

characteristicRelationship A CharacteristicRelationship. Another Characteristic that is


related to the current Characteristic;.
id A String. Unique identifier of the characteristic.
name A String. Name of the characteristic.
value A String. Value of the characteristic.
valueType A String. Data type of the value of the characteristic.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

RelatedPlaceRef sub-resource fields

© TM Forum 2024. All Rights Reserved. Page 66


Resource Pool Management User Guide

place A PlaceRef. Place reference.


role A String.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

ApplicableTimePeriod sub-resource fields

dayOfWeek A String. A day or days representing when the schedule is


applicable. For example 2, 3 represent Monday and Tuesday.
fromToDateTime A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
rangeInterval A String. An indicator that specifies the inclusion or exclusion of
the from and to DateTime attributes. Possible values are "open",
"closed", "closedBottom" and "closedTop".
validFor A TimePeriod. A period of time, either as a deadline
(endDateTime only) a startDateTime only, or both.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

CharacteristicRelationship sub-resource fields

id A String. Unique identifier of the characteristic.


relationshipType A String. The type of relationship.
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

PlaceRef sub-resource fields

href A String. Hyperlink reference.


id A String. Unique identifier.
name A String. Name of the referred entity.
@baseType A String. When sub-classing, this defines the super-class.
@referredType A String. The actual type of the target instance when needed for
disambiguation.

© TM Forum 2024. All Rights Reserved. Page 67


Resource Pool Management User Guide

@schemaLocation A String. A URI to a JSON-Schema file that defines additional


attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

TaskResource sub-resource fields

errorMessage An ErrorMessage. Represents an Error.


href A String. Hyperlink reference.
id A String. Unique identifier.
state A TaskStateType. Possible values for the state of a task.
ENUMERATED with values:
* acknowledged
* rejected
* inProgress
* cancelled
* done
* terminatedWithError
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.
TaskResource can be instanciated as
* AvailabilityCheck
* Extract
* Push
capacityDemand This property is present in subclasses
capacityOption This property is present in subclasses
extractedResource This property is present in subclasses
pushedResource This property is present in subclasses

Push sub-resource fields

errorMessage An ErrorMessage. Represents an Error.


href A String. Hyperlink reference.
id A String. Unique identifier.
pushedResource A ResourceRef. Resource reference, for when Resource is used
by other entities.

© TM Forum 2024. All Rights Reserved. Page 68


Resource Pool Management User Guide

state A TaskStateType. Possible values for the state of a task.


ENUMERATED with values:
* acknowledged
* rejected
* inProgress
* cancelled
* done
* terminatedWithError
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

AvailabilityCheck sub-resource fields

capacityDemand A Capacity. Specific ability of an entity measured in quantity and


units of quantity over an extended period.
capacityOption A Capacity. Specific ability of an entity measured in quantity and
units of quantity over an extended period.
errorMessage An ErrorMessage. Represents an Error.
href A String. Hyperlink reference.
id A String. Unique identifier.
state A TaskStateType. Possible values for the state of a task.
ENUMERATED with values:
* acknowledged
* rejected
* inProgress
* cancelled
* done
* terminatedWithError
@baseType A String. When sub-classing, this defines the super-class.
@schemaLocation A String. A URI to a JSON-Schema file that defines additional
attributes and relationships.
@type A String. When sub-classing, this defines the sub-class
Extensible name.

Json representation sample(s)

The following example demonstrates the details of the Extract resource.

{
"@type": "Extract",
"id": "c6a1e831-ef5b-4d09-85a8-594fca73313b",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/extract/c6a1e831-ef5b-4d09-85a8-594fca73313b",
"capacityDemand":

© TM Forum 2024. All Rights Reserved. Page 69


Resource Pool Management User Guide

{
"@type": "Capacity",
"capacityAmount":
{
"amount": 2,
"units": "number"
},
"capacityStatus": "planned",
"applicableTimePeriod":
[
{
"@type": "ApplicableTimePeriod",
"fromToDateTime":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}
]
},
"state": "inProgress"
}

Notification Resource Models


20 notifications are defined for this API.

Notifications related to CapacitySpecification:

• Create Event
• Delete Event
• Attribute Value Change Event

Notifications related to ResourcePoolSpecification:

• Create Event
• Delete Event
• Attribute Value Change Event
• Status Change Event

Notifications related to ResourcePool:

• Create Event
• Delete Event
• Attribute Value Change Event
• Status Change Event

Notifications related to AvailabilityCheck:

• Create Event
• Delete Event

© TM Forum 2024. All Rights Reserved. Page 70


Resource Pool Management User Guide

• State Change Event

Notifications related to Push:

• Create Event
• Delete Event
• State Change Event

Notifications related to Extract:

• Create Event
• Delete Event
• State Change Event

The notification structure for all notifications in this API follow the pattern depicted by the
figure below. A notification event resource (depicted by "SpecificEvent" placeholder) is a sub
class of a generic Event structure containing at least an id of the event occurrence (eventId),
an event timestamp (eventTime), and the name of the resource (eventType). This notification
structure owns an event payload structure ("SpecificEventPayload" placeholder) linked to the
resource concerned by the notification using the resource name as access field
("resourceName" placeholder).

© TM Forum 2024. All Rights Reserved. Page 71


Resource Pool Management User Guide

Figure 12 Notification Pattern

CapacitySpecification

Create Event

Message example for CapacitySpecificationCreateEvent event

Content-Type: application/json

{
"@type": "CapacitySpecificationCreateEvent",
"@baseType": "Event",
"correlationId": "e4888f4d-71cd-43a4-a018-dd13f230935c",
"description": "CapacitySpecificationCreateEvent illustration",
"domain": "Commercial",
"eventId": "3b63e628-0c66-4d57-abbf-2fb6aeb229fd",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "CapacitySpecificationCreateEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "CapacitySpecificationCreateEvent",
"event": {
"capacitySpecification": {
"@type": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",

© TM Forum 2024. All Rights Reserved. Page 72


Resource Pool Management User Guide

"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range",
"description": "This CapacitySpecification defines the details of
capacity for Phone Number ranges.",
"capacityCharacteristicSpecification":
[
{
"@type": "CharacteristicSpecification",
"name": "lowerNumber",
"description": "the lower boundary of a block of phone numbers;
phone numbers consist of a country code (cc), national destination code (ndc),
subscriber number (sn), and optionally a direct dial in (ddi), all sections
separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-
(?<sn>[1-9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "upperNumber",
"description": "the upper boundary of a block of phone numbers;
phone numbers consist of a country code (cc), national destination code (ndc),
subscriber number (sn), and optionally a direct dial in (ddi), all sections
separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-
(?<sn>[1-9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
}
]
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

© TM Forum 2024. All Rights Reserved. Page 73


Resource Pool Management User Guide

Delete Event

Message example for CapacitySpecificationDeleteEvent event

Content-Type: application/json

{
"@type": "CapacitySpecificationDeleteEvent",
"@baseType": "Event",
"correlationId": "5b2ca6b7-d69f-4ee7-b36e-5a4b442b14c2",
"description": "CapacitySpecificationDeleteEvent illustration",
"domain": "Commercial",
"eventId": "4dfa961e-9dc4-4cea-8e5a-2d392f8076f1",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "CapacitySpecificationDeleteEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "CapacitySpecificationDeleteEvent",
"event": {
"capacitySpecification": {
"@type": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c"
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

Attribute Value Change Event

Message example for CapacitySpecificationAttributeValueChangeEvent event

Content-Type: application/json

{
"@type": "CapacitySpecificationAttributeValueChangeEvent",
"@baseType": "Event",
"correlationId": "41a5ab1a-e6bd-4cfa-bd86-024dc2e13890",
"description": "CapacitySpecificationAttributeValueChangeEvent illustration",
"domain": "Commercial",
"eventId": "5bb79084-116a-4db1-9cc3-4443f500a7e0",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "CapacitySpecificationAttributeValueChangeEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",

© TM Forum 2024. All Rights Reserved. Page 74


Resource Pool Management User Guide

"title": "CapacitySpecificationAttributeValueChangeEvent",
"event": {
"capacitySpecification": {
"@type": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number Range"
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

ResourcePoolSpecification

Create Event

Message example for ResourcePoolSpecificationCreateEvent event

Content-Type: application/json

{
"@type": "ResourcePoolSpecificationCreateEvent",
"@baseType": "Event",
"correlationId": "e4888f4d-71cd-43a4-a018-dd13f230935c",
"description": "ResourcePoolSpecificationCreateEvent illustration",
"domain": "Commercial",
"eventId": "3b63e628-0c66-4d57-abbf-2fb6aeb229fd",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "ResourcePoolSpecificationCreateEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "ResourcePoolSpecificationCreateEvent",
"event": {
"resourcePoolSpecification": {
"@type": "ResourcePoolSpecification",
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"name": "Phone Number pool",
"description": "Specifies the details of ResourcePools for Phone Number
ranges",
"capacitySpecification":
[
{
"@type": "CapacitySpecificationRef",

© TM Forum 2024. All Rights Reserved. Page 75


Resource Pool Management User Guide

"@referredType": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range"
}
],
"resourceSpecCharacteristic":
[
{
"@type": "CharacteristicSpecification",
"name": "cc",
"description": "Phone Number Country Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d{0,2}$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "ndc",
"description": "Phone Number National Destination Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d*?$"
}
]
}
]
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

Delete Event

Message example for ResourcePoolSpecificationDeleteEvent event

Content-Type: application/json
© TM Forum 2024. All Rights Reserved. Page 76
Resource Pool Management User Guide

{
"@type": "ResourcePoolSpecificationDeleteEvent",
"@baseType": "Event",
"correlationId": "5b2ca6b7-d69f-4ee7-b36e-5a4b442b14c2",
"description": "ResourcePoolSpecificationDeleteEvent illustration",
"domain": "Commercial",
"eventId": "4dfa961e-9dc4-4cea-8e5a-2d392f8076f1",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "ResourcePoolSpecificationDeleteEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "ResourcePoolSpecificationDeleteEvent",
"event": {
"resourcePoolSpecification": {
"@type": "ResourcePoolSpecification",
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb"
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

Attribute Value Change Event

Message example for ResourcePoolSpecificationAttributeValueChangeEvent event

Content-Type: application/json

{
"@type": "ResourcePoolSpecificationAttributeValueChangeEvent",
"@baseType": "Event",
"correlationId": "41a5ab1a-e6bd-4cfa-bd86-024dc2e13890",
"description": "ResourcePoolSpecificationAttributeValueChangeEvent
illustration",
"domain": "Commercial",
"eventId": "5bb79084-116a-4db1-9cc3-4443f500a7e0",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "ResourcePoolSpecificationAttributeValueChangeEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "ResourcePoolSpecificationAttributeValueChangeEvent",
"event": {
"resourcePoolSpecification": {
"@type": "ResourcePoolSpecification",
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
© TM Forum 2024. All Rights Reserved. Page 77
Resource Pool Management User Guide

api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"validFor":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

Status Change Event

Message example for ResourcePoolSpecificationStatusChangeEvent event

Content-Type: application/json

{
"@type": "ResourcePoolSpecificationStatusChangeEvent",
"@baseType": "Event",
"correlationId": "f162615b-69be-476f-bc99-440e9ff6b122",
"description": "ResourcePoolSpecificationStatusChangeEvent illustration",
"domain": "Commercial",
"eventId": "dce63750-ee42-48c4-b220-85295f3830a6",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "ResourcePoolSpecificationStatusChangeEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "ResourcePoolSpecificationStatusChangeEvent",
"event": {
"resourcePoolSpecification": {
"@type": "ResourcePoolSpecification",
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"lifecycleStatus": "active"
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
© TM Forum 2024. All Rights Reserved. Page 78
Resource Pool Management User Guide

"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

ResourcePool

Create Event

Message example for ResourcePoolCreateEvent event

Content-Type: application/json

{
"@type": "ResourcePoolCreateEvent",
"@baseType": "Event",
"correlationId": "e4888f4d-71cd-43a4-a018-dd13f230935c",
"description": "ResourcePoolCreateEvent illustration",
"domain": "Commercial",
"eventId": "3b63e628-0c66-4d57-abbf-2fb6aeb229fd",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "ResourcePoolCreateEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "ResourcePoolCreateEvent",
"event": {
"resourcePool": {
"@type": "ResourcePool",
"id": "c3fef858-b864-4fac-971e-795b1195ded9",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-795b1195ded9",
"name": "Phone Number block for partner MyPartner",
"description": "This Pool collects the PhoneNumber resources assigned to
the partner MyPartner.",
"pooledResourceSpecification":
{
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification",
"id": "89afac38-32e2-40f8-8be2-7b86dd03c9c9",
"href": "https://{server}:{port}/tmf-
api/resourceCatalogManagement/v5/resourceSpecification/89afac38-32e2-40f8-8be2-
7b86dd03c9c9",
"name": "Phone Number"
},
"resourceCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "cc",
"valueType": "string",
"value": "49"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "ndc",
"valueType": "string",
"value": "228"

© TM Forum 2024. All Rights Reserved. Page 79


Resource Pool Management User Guide

}
],
"capacity":
[
{
"@type": "Capacity",
"id": "cf8d1665-a3cc-470c-97eb-782f226075ce",
"href": "https://{server}:{port}/tmf-
api/resourcePool/v5/capacity/cf8d1665-a3cc-470c-97eb-782f226075ce",
"name": "Capacity of Phone Number pool for MyPartner",
"capacitySpecification": {
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification"
},
"capacityStatus": "actual",
"capacityAmount":
{
"amount": 1000,
"units": "number"
},
"capacityCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "lowerNumber",
"valueType": "string",
"value": "+49-228-181-000"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "upperNumber",
"valueType": "string",
"value": "+49-228-181-999"
}
]
}
],
"resourceSpecification":
{
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourcePoolSpecification"
},
"relatedParty":
[
{
"@type": "RelatedPartyRefOrPartyRoleRef",
"role": "Partner",
"partyOrPartyRole":
{
"@type": "PartyRef",
"@referredType": "Organization",
"id": "47abd723-d3ca-49d8-ba53-76aa62e867e9",
"href": "https://{server}:{port}/tmf-
© TM Forum 2024. All Rights Reserved. Page 80
Resource Pool Management User Guide

api/partyManagement/v5/organization/47abd723-d3ca-49d8-ba53-76aa62e867e9",
"name": "MyPartner"
}
}
]
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

Delete Event

Message example for ResourcePoolDeleteEvent event

Content-Type: application/json

{
"@type": "ResourcePoolDeleteEvent",
"@baseType": "Event",
"correlationId": "5b2ca6b7-d69f-4ee7-b36e-5a4b442b14c2",
"description": "ResourcePoolDeleteEvent illustration",
"domain": "Commercial",
"eventId": "4dfa961e-9dc4-4cea-8e5a-2d392f8076f1",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "ResourcePoolDeleteEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "ResourcePoolDeleteEvent",
"event": {
"resourcePool": {
"@type": "ResourcePool",
"id": "c3fef858-b864-4fac-971e-795b1195ded9",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-795b1195ded9"
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}

© TM Forum 2024. All Rights Reserved. Page 81


Resource Pool Management User Guide

Attribute Value Change Event

Message example for ResourcePoolAttributeValueChangeEvent event

Content-Type: application/json

{
"@type": "ResourcePoolAttributeValueChangeEvent",
"@baseType": "Event",
"correlationId": "41a5ab1a-e6bd-4cfa-bd86-024dc2e13890",
"description": "ResourcePoolAttributeValueChangeEvent illustration",
"domain": "Commercial",
"eventId": "5bb79084-116a-4db1-9cc3-4443f500a7e0",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "ResourcePoolAttributeValueChangeEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "ResourcePoolAttributeValueChangeEvent",
"event": {
"resourcePool": {
"@type": "ResourcePool",
"id": "c3fef858-b864-4fac-971e-795b1195ded9",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-795b1195ded9",
"name": "Phone Number block for partner 'MyPartner'",
"description": "This Pool collects the PhoneNumber resources assigned to
the partner 'MyPartner'.",
"validFor":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

Status Change Event

Message example for ResourcePoolStatusChangeEvent event

Content-Type: application/json

© TM Forum 2024. All Rights Reserved. Page 82


Resource Pool Management User Guide

"@type": "ResourcePoolStatusChangeEvent",
"@baseType": "Event",
"correlationId": "f162615b-69be-476f-bc99-440e9ff6b122",
"description": "ResourcePoolStatusChangeEvent illustration",
"domain": "Commercial",
"eventId": "dce63750-ee42-48c4-b220-85295f3830a6",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "ResourcePoolStatusChangeEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "ResourcePoolStatusChangeEvent",
"event": {
"resourcePool": {
"@type": "ResourcePool",
"id": "c3fef858-b864-4fac-971e-795b1195ded9",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-795b1195ded9",
"resourceStatus": "planned"
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

AvailabilityCheck

Create Event

Message example for AvailabilityCheckCreateEvent event

Content-Type: application/json

{
"@type": "AvailabilityCheckCreateEvent",
"@baseType": "Event",
"correlationId": "e4888f4d-71cd-43a4-a018-dd13f230935c",
"description": "AvailabilityCheckCreateEvent illustration",
"domain": "Commercial",
"eventId": "3b63e628-0c66-4d57-abbf-2fb6aeb229fd",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "AvailabilityCheckCreateEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "AvailabilityCheckCreateEvent",
"event": {
"availabilityCheck": {
"@type": "AvailabilityCheck",
"id": "8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"href": "https://{server}:{port}/tmf-

© TM Forum 2024. All Rights Reserved. Page 83


Resource Pool Management User Guide

api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/availabilityCheck/8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"capacityDemand":
{
"@type": "Capacity",
"capacityAmount":
{
"amount": 1,
"units": "number"
}
}
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

Delete Event

Message example for AvailabilityCheckDeleteEvent event

Content-Type: application/json

{
"@type": "AvailabilityCheckDeleteEvent",
"@baseType": "Event",
"correlationId": "e4888f4d-71cd-43a4-a018-dd13f230935c",
"description": "AvailabilityCheckDeleteEvent illustration",
"domain": "Commercial",
"eventId": "3b63e628-0c66-4d57-abbf-2fb6aeb229fd",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "AvailabilityCheckDeleteEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "AvailabilityCheckDeleteEvent",
"event": {
"availabilityCheck": {
"@type": "AvailabilityCheck",
"id": "8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/availabilityCheck/8cb645cb-279f-42f4-9d3b-72845bbfafbe"
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
© TM Forum 2024. All Rights Reserved. Page 84
Resource Pool Management User Guide

"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

State Change Event

Message example for AvailabilityCheckStateChangeEvent event

Content-Type: application/json

{
"@type": "AvailabilityCheckStateChangeEvent",
"@baseType": "Event",
"correlationId": "e4888f4d-71cd-43a4-a018-dd13f230935c",
"description": "AvailabilityCheckStateChangeEvent illustration",
"domain": "Commercial",
"eventId": "3b63e628-0c66-4d57-abbf-2fb6aeb229fd",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "AvailabilityCheckStateChangeEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "AvailabilityCheckStateChangeEvent",
"event": {
"availabilityCheck": {
"@type": "AvailabilityCheck",
"id": "8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/availabilityCheck/8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"state": "done"
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

Push

Create Event

Message example for PushCreateEvent event

© TM Forum 2024. All Rights Reserved. Page 85


Resource Pool Management User Guide

Content-Type: application/json

{
"@type": "PushCreateEvent",
"@baseType": "Event",
"correlationId": "e4888f4d-71cd-43a4-a018-dd13f230935c",
"description": "PushCreateEvent illustration",
"domain": "Commercial",
"eventId": "3b63e628-0c66-4d57-abbf-2fb6aeb229fd",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "PushCreateEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "PushCreateEvent",
"event": {
"push": {
"@type": "Push",
"id": "ae63d76e-6d00-45aa-97a6-c8a2b54390e5",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/push/ae63d76e-6d00-45aa-97a6-c8a2b54390e5",
"pushedResource":
[
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "4d179a07-1555-4e5f-a2de-0a51f5dd7e15",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/4d179a07-1555-4e5f-a2de-0a51f5dd7e15"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "15dfa8a7-f9db-43a8-8758-9d9df5a76264",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/15dfa8a7-f9db-43a8-8758-9d9df5a76264"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "195aa8ee-7560-4d97-9b9a-2add1a4e0372",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/195aa8ee-7560-4d97-9b9a-2add1a4e0372"
}
]
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

© TM Forum 2024. All Rights Reserved. Page 86


Resource Pool Management User Guide

Delete Event

Message example for PushDeleteEvent event

Content-Type: application/json

{
"@type": "PushDeleteEvent",
"@baseType": "Event",
"correlationId": "e4888f4d-71cd-43a4-a018-dd13f230935c",
"description": "PushDeleteEvent illustration",
"domain": "Commercial",
"eventId": "3b63e628-0c66-4d57-abbf-2fb6aeb229fd",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "PushDeleteEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "PushDeleteEvent",
"event": {
"push": {
"@type": "Push",
"id": "ae63d76e-6d00-45aa-97a6-c8a2b54390e5",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/push/ae63d76e-6d00-45aa-97a6-c8a2b54390e5"
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

State Change Event

Message example for PushStateChangeEvent event

Content-Type: application/json

{
"@type": "PushStateChangeEvent",
"@baseType": "Event",
"correlationId": "e4888f4d-71cd-43a4-a018-dd13f230935c",
"description": "PushStateChangeEvent illustration",
"domain": "Commercial",
"eventId": "3b63e628-0c66-4d57-abbf-2fb6aeb229fd",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "PushStateChangeEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",

© TM Forum 2024. All Rights Reserved. Page 87


Resource Pool Management User Guide

"title": "PushStateChangeEvent",
"event": {
"push": {
"@type": "Push",
"id": "ae63d76e-6d00-45aa-97a6-c8a2b54390e5",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/push/ae63d76e-6d00-45aa-97a6-c8a2b54390e5",
"state": "done"
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

Extract

Create Event

Message example for ExtractCreateEvent event

Content-Type: application/json

{
"@type": "ExtractCreateEvent",
"@baseType": "Event",
"correlationId": "e4888f4d-71cd-43a4-a018-dd13f230935c",
"description": "ExtractCreateEvent illustration",
"domain": "Commercial",
"eventId": "3b63e628-0c66-4d57-abbf-2fb6aeb229fd",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "ExtractCreateEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "ExtractCreateEvent",
"event": {
"extract": {
"@type": "Extract",
"id": "c6a1e831-ef5b-4d09-85a8-594fca73313b",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/extract/c6a1e831-ef5b-4d09-85a8-594fca73313b",
"capacityDemand":
{
"@type": "Capacity",
"capacityAmount":
{
"amount": 2,
"units": "number"

© TM Forum 2024. All Rights Reserved. Page 88


Resource Pool Management User Guide

},
"capacityStatus": "planned",
"applicableTimePeriod":
[
{
"@type": "ApplicableTimePeriod",
"fromToDateTime":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}
]
}
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

Delete Event

Message example for ExtractDeleteEvent event

Content-Type: application/json

{
"@type": "ExtractDeleteEvent",
"@baseType": "Event",
"correlationId": "e4888f4d-71cd-43a4-a018-dd13f230935c",
"description": "ExtractDeleteEvent illustration",
"domain": "Commercial",
"eventId": "3b63e628-0c66-4d57-abbf-2fb6aeb229fd",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "ExtractDeleteEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "ExtractDeleteEvent",
"event": {
"extract": {
"@type": "Extract",
"id": "c6a1e831-ef5b-4d09-85a8-594fca73313b",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/extract/c6a1e831-ef5b-4d09-85a8-594fca73313b"
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
© TM Forum 2024. All Rights Reserved. Page 89
Resource Pool Management User Guide

"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

State Change Event

Message example for ExtractStateChangeEvent event

Content-Type: application/json

{
"@type": "ExtractStateChangeEvent",
"@baseType": "Event",
"correlationId": "e4888f4d-71cd-43a4-a018-dd13f230935c",
"description": "ExtractStateChangeEvent illustration",
"domain": "Commercial",
"eventId": "3b63e628-0c66-4d57-abbf-2fb6aeb229fd",
"eventTime": "2024-09-19T13:55:06.910Z",
"eventType": "ExtractStateChangeEvent",
"priority": "3",
"timeOccurred": "2024-09-19T13:55:03.868Z",
"title": "ExtractStateChangeEvent",
"event": {
"extract": {
"@type": "Extract",
"id": "c6a1e831-ef5b-4d09-85a8-594fca73313b",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/extract/c6a1e831-ef5b-4d09-85a8-594fca73313b",
"state": "done"
}
},
"reportingSystem": {
"id": "109",
"name": "APP-804",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
},
"source": {
"id": "8",
"name": "APP-307",
"@type": "ReportingResource",
"@referredType": "LogicalResource"
}
}

© TM Forum 2024. All Rights Reserved. Page 90


Resource Pool Management User Guide

API OPERATIONS
Remember the following Uniform Contract:

Operation on Entities Uniform API Operation Description


Query Entities GET Resource GET must be used to retrieve a
representation of a resource.
Create Entity POST Resource POST must be used to create a
new resource
Partial Update of an Entity PATCH Resource PATCH must be used to partially
update a resource
Remove an Entity DELETE Resource DELETE must be used to
remove a resource
Execute an Action on an Entity POST on TASK Resource POST must be used to execute
Task Resources
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.

Notifications are also described in a subsequent section.

Operations on CapacitySpecification

Retrieves a CapacitySpecification by ID
GET /capacitySpecification/{id}?fields=…

Description

This operation retrieves a CapacitySpecification entity. Attribute selection is enabled for all
first level attributes. Filtering may be available depending on the compliance level supported
by an implementation.

Usage samples

Here's an example of a request for retrieving a CapacitySpecification resource

Request

GET /capacitySpecification/3d01344d-4409-4b15-8fcb-b8802314ff9c
Content-Type: application/json

Response

200

© TM Forum 2024. All Rights Reserved. Page 91


Resource Pool Management User Guide

{
"@type": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range",
"description": "This CapacitySpecification defines the details of capacity for
Phone Number ranges.",
"capacityCharacteristicSpecification":
[
{
"@type": "CharacteristicSpecification",
"name": "lowerNumber",
"description": "the lower boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "upperNumber",
"description": "the upper boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
}
]
}

List or find CapacitySpecification objects


GET /capacitySpecification?fields=…

Description

This operation list CapacitySpecification entities. Attribute selection is enabled for all first
level attributes. Filtering may be available depending on the compliance level supported by
an implementation.

Usage samples

© TM Forum 2024. All Rights Reserved. Page 92


Resource Pool Management User Guide

Here's an example of a request for retrieving CapacitySpecification resources.

Request

GET /capacitySpecification?name=Phone Number range


Content-Type: application/json

Response

200

[
{
"@type": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range",
"description": "This CapacitySpecification defines the details of capacity
for Phone Number ranges.",
"capacityCharacteristicSpecification":
[
{
"@type": "CharacteristicSpecification",
"name": "lowerNumber",
"description": "the lower boundary of a block of phone numbers;
phone numbers consist of a country code (cc), national destination code (ndc),
subscriber number (sn), and optionally a direct dial in (ddi), all sections
separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-
(?<sn>[1-9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "upperNumber",
"description": "the upper boundary of a block of phone numbers;
phone numbers consist of a country code (cc), national destination code (ndc),
subscriber number (sn), and optionally a direct dial in (ddi), all sections
separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-
(?<sn>[1-9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
}
© TM Forum 2024. All Rights Reserved. Page 93
Resource Pool Management User Guide

]
},
{
"@type": "CapacitySpecification",
"id": "3a2e4da3-ecf8-41d8-b379-e05998761f87",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3a2e4da3-ecf8-41d8-b379-
e05998761f87",
"name": "IPv4 Address range",
"description": "This CapacitySpecification defines the details of capacity
for IP Address ranges.",
"capacityCharacteristicSpecification":
[
{
"@type": "CharacteristicSpecification",
"name": "IPv4-PrefixSize",
"description": "Number of bits to specify a range of IPv4 addresses,
e.g. the '8' in '192.0.0.0/8'",
"valueType": "integer",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "integer",
"valueFrom": 0,
"valueTo": 32
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "IPv4-Address",
"description": "a IPv4 address in decimal dot notation, e.g.
192.0.0.1",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-
(?<sn>[1-9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
}
]
}
]

Creates a CapacitySpecification
POST /capacitySpecification?fields=…

Description

This operation creates a CapacitySpecification entity.

Mandatory Attributes

© TM Forum 2024. All Rights Reserved. Page 94


Resource Pool Management User Guide

Mandatory Attributes Rule


@type

Usage samples

Here's an example of a request for creating a CapacitySpecification resources.

Request

POST /capacitySpecification
Content-Type: application/json

{
"@type": "CapacitySpecification",
"name": "Phone Number range",
"description": "This CapacitySpecification defines the details of capacity for
Phone Number ranges.",
"capacityCharacteristicSpecification":
[
{
"@type": "CharacteristicSpecification",
"name": "lowerNumber",
"description": "the lower boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "upperNumber",
"description": "the upper boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
}
]
}

Response

© TM Forum 2024. All Rights Reserved. Page 95


Resource Pool Management User Guide

201

{
"@type": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range",
"description": "This CapacitySpecification defines the details of capacity for
Phone Number ranges.",
"capacityCharacteristicSpecification":
[
{
"@type": "CharacteristicSpecification",
"name": "lowerNumber",
"description": "the lower boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "upperNumber",
"description": "the upper boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
}
]
}

Updates partially a CapacitySpecification


PATCH /capacitySpecification/{id}?fields=…

Description

This operation allows partial updates of a CapacitySpecification entity. Support of json/merge


(https://tools.ietf.org/html/rfc7396) 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
© TM Forum 2024. All Rights Reserved. Page 96
Resource Pool Management User Guide

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.

Patchable and Non Patchable Attributes

Non Patchable Attributes Rule


href
id
@baseType @baseType is immutable
@schemaLocation @schemaLocation is immutable
@type @type is immutable

Patchable Attributes Rule


capacityCharacteristicSpecificatio
n
description
externalIdentifier
name
relatedCapacitySpecification
validFor

Usage samples

Here is an example of a request for patching a CapacitySpecification using APPLICATION-


JSON syntax.

Request

PATCH /capacitySpecification/3d01344d-4409-4b15-8fcb-b8802314ff9c
Content-Type: application/json

{
"@type": "CapacitySpecification",
"name": "Phone Number Range"
}

Response

200

{
"@type": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
© TM Forum 2024. All Rights Reserved. Page 97
Resource Pool Management User Guide

"name": "Phone Number Range",


"description": "This CapacitySpecification defines the details of capacity for
Phone Number ranges.",
"capacityCharacteristicSpecification":
[
{
"@type": "CharacteristicSpecification",
"name": "lowerNumber",
"description": "the lower boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "upperNumber",
"description": "the upper boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
}
]
}

Here is an example of a request for patching a CapacitySpecification using MERGE syntax.

Request

PATCH /capacitySpecification/3d01344d-4409-4b15-8fcb-b8802314ff9c
Content-Type: application/merge-patch+json

{
"@type": "CapacitySpecification",
"name": "Phone Number Range"
}

Response

200

© TM Forum 2024. All Rights Reserved. Page 98


Resource Pool Management User Guide

{
"@type": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number Range",
"description": "This CapacitySpecification defines the details of capacity for
Phone Number ranges.",
"capacityCharacteristicSpecification":
[
{
"@type": "CharacteristicSpecification",
"name": "lowerNumber",
"description": "the lower boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "upperNumber",
"description": "the upper boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
}
]
}

Here is an example of a request for patching a CapacitySpecification using JSON-PATCH


syntax.

Request

PATCH /capacitySpecification/3d01344d-4409-4b15-8fcb-b8802314ff9c
Content-Type: application/json-patch+json

[
{
"op": "replace",
© TM Forum 2024. All Rights Reserved. Page 99
Resource Pool Management User Guide

"path": "/name",
"value": "Phone Number Range"
},
{
"op": "add",
"path": "/validFor",
"value":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}
]

Response

200

{
"@type": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number Range",
"description": "This CapacitySpecification defines the details of capacity for
Phone Number ranges.",
"capacityCharacteristicSpecification":
[
{
"@type": "CharacteristicSpecification",
"name": "lowerNumber",
"description": "the lower boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "upperNumber",
"description": "the upper boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"

© TM Forum 2024. All Rights Reserved. Page 100


Resource Pool Management User Guide

}
]
}
],
"validFor":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}

Here is an example of a request for patching a CapacitySpecification using JSON-PATCH-


QUERY syntax.

Request

PATCH /capacitySpecification/3d01344d-4409-4b15-8fcb-b8802314ff9c
Content-Type: application/json-patch-query+json

[
{
"op": "replace",
"path": "$.capacityCharacteristicSpecification[0]/name",
"value": "Lower Number"
}
]

Response

200

{
"@type": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range",
"description": "This CapacitySpecification defines the details of capacity for
Phone Number ranges.",
"capacityCharacteristicSpecification":
[
{
"@type": "CharacteristicSpecification",
"name": "Lower Number",
"description": "the lower boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"

© TM Forum 2024. All Rights Reserved. Page 101


Resource Pool Management User Guide

}
]
},
{
"@type": "CharacteristicSpecification",
"name": "upperNumber",
"description": "the upper boundary of a block of phone numbers; phone
numbers consist of a country code (cc), national destination code (ndc), subscriber
number (sn), and optionally a direct dial in (ddi), all sections separated by '-'",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^\\+(?<cc>[1-9]\\d{0,2})-(?<ndc>[1-9]\\d*)-(?<sn>[1-
9]\\d*)(?:-?(?<ddi>\\d+))?$"
}
]
}
]
}

Deletes a CapacitySpecification
DELETE /capacitySpecification/{id}

Description

This operation deletes a CapacitySpecification entity.

Operations on ResourcePoolSpecification

List or find ResourcePoolSpecification objects


GET /resourcePoolSpecification?fields=…

Description

This operation list ResourcePoolSpecification entities. Attribute selection is enabled for all
first level attributes. Filtering may be available depending on the compliance level supported
by an implementation.

Usage samples

Here's an example of a request for retrieving ResourcePoolSpecification resources.

Request

GET /resourcePoolSpecification?name=Phone Number pool


Content-Type: application/json

Response

© TM Forum 2024. All Rights Reserved. Page 102


Resource Pool Management User Guide

200

[
{
"@type": "ResourcePoolSpecification",
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"name": "Phone Number pool",
"description": "Specifies the details of ResourcePools for Phone Number
ranges",
"capacitySpecification":
[
{
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range"
}
],
"resourceSpecCharacteristic":
[
{
"@type": "CharacteristicSpecification",
"name": "cc",
"description": "Phone Number Country Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d{0,2}$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "ndc",
"description": "Phone Number National Destination Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d*?$"
}
]
}
]
}
]

© TM Forum 2024. All Rights Reserved. Page 103


Resource Pool Management User Guide

Retrieves a ResourcePoolSpecification by ID
GET /resourcePoolSpecification/{id}?fields=…

Description

This operation retrieves a ResourcePoolSpecification entity. Attribute selection is enabled for


all first level attributes. Filtering may be available depending on the compliance level
supported by an implementation.

Usage samples

Here's an example of a request for retrieving a ResourcePoolSpecification resource

Request

GET /resourcePoolSpecification/b0e0827c-5693-4e41-8445-22438abb33cb
Content-Type: application/json

Response

200

{
"@type": "ResourcePoolSpecification",
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"name": "Phone Number pool",
"description": "Specifies the details of ResourcePools for Phone Number ranges",
"capacitySpecification":
[
{
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range"
}
],
"resourceSpecCharacteristic":
[
{
"@type": "CharacteristicSpecification",
"name": "cc",
"description": "Phone Number Country Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d{0,2}$"
}

© TM Forum 2024. All Rights Reserved. Page 104


Resource Pool Management User Guide

]
},
{
"@type": "CharacteristicSpecification",
"name": "ndc",
"description": "Phone Number National Destination Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d*?$"
}
]
}
]
}

Creates a ResourcePoolSpecification
POST /resourcePoolSpecification?fields=…

Description

This operation creates a ResourcePoolSpecification entity.

Mandatory Attributes

Mandatory Attributes Rule


@type

Usage samples

Here's an example of a request for creating a ResourcePoolSpecification resources.

Request

POST /resourcePoolSpecification
Content-Type: application/json

{
"@type": "ResourcePoolSpecification",
"name": "Phone Number pool",
"description": "Specifies the details of ResourcePools for Phone Number ranges",
"capacitySpecification":
[
{
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range"
}

© TM Forum 2024. All Rights Reserved. Page 105


Resource Pool Management User Guide

],
"resourceSpecCharacteristic":
[
{
"@type": "CharacteristicSpecification",
"name": "cc",
"description": "Phone Number Country Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d{0,2}$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "ndc",
"description": "Phone Number National Destination Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d*?$"
}
]
}
]
}

Response

201

{
"@type": "ResourcePoolSpecification",
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"name": "Phone Number pool",
"description": "Specifies the details of ResourcePools for Phone Number ranges",
"capacitySpecification":
[
{
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range"
}
],
"resourceSpecCharacteristic":
[

© TM Forum 2024. All Rights Reserved. Page 106


Resource Pool Management User Guide

{
"@type": "CharacteristicSpecification",
"name": "cc",
"description": "Phone Number Country Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d{0,2}$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "ndc",
"description": "Phone Number National Destination Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d*?$"
}
]
}
]
}

Updates partially a ResourcePoolSpecification


PATCH /resourcePoolSpecification/{id}?fields=…

Description

This operation allows partial updates of a ResourcePoolSpecification entity. Support of


json/merge (https://tools.ietf.org/html/rfc7396) 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.

Patchable and Non Patchable Attributes

Non Patchable Attributes Rule


href
id
@baseType @baseType is immutable
@schemaLocation @schemaLocation is immutable
@type @type is immutable

© TM Forum 2024. All Rights Reserved. Page 107


Resource Pool Management User Guide

Patchable Attributes Rule


attachment
capacitySpecification
category
description
externalIdentifier
featureSpecification
intentSpecification
isBundle
lastUpdate
lifecycleStatus
name
relatedParty
resourceSpecCharacteristic
resourceSpecRelationship
targetResourceSchema
validFor
version

Usage samples

Here is an example of a request for patching a ResourcePoolSpecification using


APPLICATION-JSON syntax.

Request

PATCH /resourcePoolSpecification/b0e0827c-5693-4e41-8445-22438abb33cb
Content-Type: application/json

{
"@type": "ResourcePoolSpecification",
"validFor":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}

Response

200

{
"@type": "ResourcePoolSpecification",

© TM Forum 2024. All Rights Reserved. Page 108


Resource Pool Management User Guide

"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"name": "Phone Number pool",
"description": "Specifies the details of ResourcePools for Phone Number ranges",
"capacitySpecification":
[
{
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range"
}
],
"resourceSpecCharacteristic":
[
{
"@type": "CharacteristicSpecification",
"name": "cc",
"description": "Phone Number Country Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d{0,2}$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "ndc",
"description": "Phone Number National Destination Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d*?$"
}
]
}
],
"validFor":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}

Here is an example of a request for patching a ResourcePoolSpecification using MERGE


syntax.

Request

© TM Forum 2024. All Rights Reserved. Page 109


Resource Pool Management User Guide

PATCH /resourcePoolSpecification/b0e0827c-5693-4e41-8445-22438abb33cb
Content-Type: application/merge-patch+json

{
"@type": "ResourcePoolSpecification",
"validFor":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}

Response

200

{
"@type": "ResourcePoolSpecification",
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"name": "Phone Number pool",
"description": "Specifies the details of ResourcePools for Phone Number ranges",
"capacitySpecification":
[
{
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range"
}
],
"resourceSpecCharacteristic":
[
{
"@type": "CharacteristicSpecification",
"name": "cc",
"description": "Phone Number Country Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d{0,2}$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "ndc",
"description": "Phone Number National Destination Code",
"valueType": "string",
"characteristicValueSpecification":
[

© TM Forum 2024. All Rights Reserved. Page 110


Resource Pool Management User Guide

{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d*?$"
}
]
}
],
"validFor":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}

Here is an example of a request for patching a ResourcePoolSpecification using JSON-


PATCH syntax.

Request

PATCH /resourcePoolSpecification/b0e0827c-5693-4e41-8445-22438abb33cb
Content-Type: application/json-patch+json

[
{
"op": "replace",
"path": "/name",
"value": "Phone Number pool (single subsubriber)"
},
{
"op": "add",
"path": "/resourceSpecCharacteristic",
"value":
{
"@type": "CharacteristicSpecification",
"name": "sn",
"description": "Phone Number Subscriber Number",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d*$"
}
]
}
}
]

Response

200

{
"@type": "ResourcePoolSpecification",
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",

© TM Forum 2024. All Rights Reserved. Page 111


Resource Pool Management User Guide

"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"name": "Phone Number pool (single subsubriber)",
"description": "Specifies the details of ResourcePools for Phone Number ranges",
"capacitySpecification":
[
{
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range"
}
],
"resourceSpecCharacteristic":
[
{
"@type": "CharacteristicSpecification",
"name": "cc",
"description": "Phone Number Country Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d{0,2}$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "ndc",
"description": "Phone Number National Destination Code",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d*?$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "sn",
"description": "Phone Number Subscriber Number",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d*$"
}
]
}
]

© TM Forum 2024. All Rights Reserved. Page 112


Resource Pool Management User Guide

Here is an example of a request for patching a ResourcePoolSpecification using JSON-


PATCH-QUERY syntax.

Request

PATCH /resourcePoolSpecification/b0e0827c-5693-4e41-8445-22438abb33cb
Content-Type: application/json-patch-query+json

[
{
"op": "replace",
"path": "$.resourceSpecCharacteristic[?(@.name == 'cc')].description",
"value": "Phone Number Country Code (CC)"
},
{
"op": "replace",
"path": "$.resourceSpecCharacteristic[?(@.name == 'ndc')].description",
"value": "Phone Number National Destination Code (NDC)"
}
]

Response

200

{
"@type": "ResourcePoolSpecification",
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"name": "Phone Number pool",
"description": "Specifies the details of ResourcePools for Phone Number ranges",
"capacitySpecification":
[
{
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification",
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"name": "Phone Number range"
}
],
"resourceSpecCharacteristic":
[
{
"@type": "CharacteristicSpecification",
"name": "cc",
"description": "Phone Number Country Code (CC)",
"valueType": "string",
"characteristicValueSpecification":
[
{

© TM Forum 2024. All Rights Reserved. Page 113


Resource Pool Management User Guide

"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d{0,2}$"
}
]
},
{
"@type": "CharacteristicSpecification",
"name": "ndc",
"description": "Phone Number National Destination Code (NDC)",
"valueType": "string",
"characteristicValueSpecification":
[
{
"@type": "CharacteristicValueSpecification",
"valueType": "string",
"regex": "^[1-9]\\d*?$"
}
]
}
]
}

Deletes a ResourcePoolSpecification
DELETE /resourcePoolSpecification/{id}

Description

This operation deletes a ResourcePoolSpecification entity.

Operations on ResourcePool

List or find ResourcePool objects


GET /resourcePool?fields=…

Description

This operation list ResourcePool entities. Attribute selection is enabled for all first level
attributes. Filtering may be available depending on the compliance level supported by an
implementation.

Usage samples

Here's an example of a request for retrieving ResourcePool resources.

Request

GET /resourcePool?name=Phone Number block for partner MyPartner


Content-Type: application/json

Response

© TM Forum 2024. All Rights Reserved. Page 114


Resource Pool Management User Guide

200

[
{
"@type": "ResourcePool",
"id": "c3fef858-b864-4fac-971e-795b1195ded9",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-795b1195ded9",
"name": "Phone Number block for partner MyPartner",
"description": "This Pool collects the PhoneNumber resources assigned to the
partner MyPartner.",
"pooledResourceSpecification":
{
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification",
"id": "89afac38-32e2-40f8-8be2-7b86dd03c9c9",
"href": "https://{server}:{port}/tmf-
api/resourceCatalogManagement/v5/resourceSpecification/89afac38-32e2-40f8-8be2-
7b86dd03c9c9",
"name": "Phone Number"
},
"resourceCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "cc",
"valueType": "string",
"value": "49"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "ndc",
"valueType": "string",
"value": "228"
}
],
"capacity":
[
{
"@type": "Capacity",
"id": "cf8d1665-a3cc-470c-97eb-782f226075ce",
"href": "https://{server}:{port}/tmf-
api/resourcePool/v5/capacity/cf8d1665-a3cc-470c-97eb-782f226075ce",
"name": "Capacity of Phone Number pool for MyPartner",
"capacitySpecification": {
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification"
},
"capacityStatus": "actual",
"capacityAmount":
{
"amount": 1000,
"units": "number"
},
"capacityCharacteristic":
[
© TM Forum 2024. All Rights Reserved. Page 115
Resource Pool Management User Guide

{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "lowerNumber",
"valueType": "string",
"value": "+49-228-181-000"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "upperNumber",
"valueType": "string",
"value": "+49-228-181-999"
}
]
}
],
"resourceSpecification":
{
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourcePoolSpecification"
},
"relatedParty":
[
{
"@type": "RelatedPartyRefOrPartyRoleRef",
"role": "Partner",
"partyOrPartyRole":
{
"@type": "PartyRef",
"@referredType": "Organization",
"id": "47abd723-d3ca-49d8-ba53-76aa62e867e9",
"href": "https://{server}:{port}/tmf-
api/partyManagement/v5/organization/47abd723-d3ca-49d8-ba53-76aa62e867e9",
"name": "MyPartner"
}
}
]
}
]

Retrieves a ResourcePool by ID
GET /resourcePool/{id}?fields=…

Description

This operation retrieves a ResourcePool entity. Attribute selection is enabled for all first level
attributes. Filtering may be available depending on the compliance level supported by an
implementation.

Usage samples

Here's an example of a request for retrieving a ResourcePool resource

© TM Forum 2024. All Rights Reserved. Page 116


Resource Pool Management User Guide

Request

GET /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9
Content-Type: application/json

Response

200

{
"@type": "ResourcePool",
"id": "c3fef858-b864-4fac-971e-795b1195ded9",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-795b1195ded9",
"name": "Phone Number block for partner MyPartner",
"description": "This Pool collects the PhoneNumber resources assigned to the
partner MyPartner.",
"pooledResourceSpecification":
{
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification",
"id": "89afac38-32e2-40f8-8be2-7b86dd03c9c9",
"href": "https://{server}:{port}/tmf-
api/resourceCatalogManagement/v5/resourceSpecification/89afac38-32e2-40f8-8be2-
7b86dd03c9c9",
"name": "Phone Number"
},
"resourceCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "cc",
"valueType": "string",
"value": "49"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "ndc",
"valueType": "string",
"value": "228"
}
],
"capacity":
[
{
"@type": "Capacity",
"id": "cf8d1665-a3cc-470c-97eb-782f226075ce",
"href": "https://{server}:{port}/tmf-
api/resourcePool/v5/capacity/cf8d1665-a3cc-470c-97eb-782f226075ce",
"name": "Capacity of Phone Number pool for MyPartner",
"capacitySpecification": {
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification"

© TM Forum 2024. All Rights Reserved. Page 117


Resource Pool Management User Guide

},
"capacityStatus": "actual",
"capacityAmount":
{
"amount": 1000,
"units": "number"
},
"capacityCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "lowerNumber",
"valueType": "string",
"value": "+49-228-181-000"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "upperNumber",
"valueType": "string",
"value": "+49-228-181-999"
}
]
}
],
"resourceSpecification":
{
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourcePoolSpecification"
},
"relatedParty":
[
{
"@type": "RelatedPartyRefOrPartyRoleRef",
"role": "Partner",
"partyOrPartyRole":
{
"@type": "PartyRef",
"@referredType": "Organization",
"id": "47abd723-d3ca-49d8-ba53-76aa62e867e9",
"href": "https://{server}:{port}/tmf-
api/partyManagement/v5/organization/47abd723-d3ca-49d8-ba53-76aa62e867e9",
"name": "MyPartner"
}
}
]
}

Creates a ResourcePool
POST /resourcePool?fields=…

Description

This operation creates a ResourcePool entity.

© TM Forum 2024. All Rights Reserved. Page 118


Resource Pool Management User Guide

Mandatory Attributes

Mandatory Attributes Rule


@type

Usage samples

Here's an example of a request for creating a ResourcePool resources.

Request

POST /resourcePool
Content-Type: application/json

{
"@type": "ResourcePool",
"name": "Phone Number block for partner MyPartner",
"description": "This Pool collects the PhoneNumber resources assigned to the
partner MyPartner.",
"pooledResourceSpecification":
{
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification",
"id": "89afac38-32e2-40f8-8be2-7b86dd03c9c9",
"href": "https://{server}:{port}/tmf-
api/resourceCatalogManagement/v5/resourceSpecification/89afac38-32e2-40f8-8be2-
7b86dd03c9c9",
"name": "Phone Number"
},
"resourceCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "cc",
"valueType": "string",
"value": "49"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "ndc",
"valueType": "string",
"value": "228"
}
],
"capacity":
[
{
"@type": "Capacity",
"name": "Capacity of Phone Number pool for MyPartner",
"capacitySpecification": {
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification"
},
© TM Forum 2024. All Rights Reserved. Page 119
Resource Pool Management User Guide

"capacityStatus": "actual",
"capacityAmount":
{
"amount": 1000,
"units": "number"
},
"capacityCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"id": "bde67cfd-8d4a-4a22-a948-7565978aa0ed",
"name": "lowerNumber",
"valueType": "string",
"value": "+49-228-181-000"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"id": "2612c070-d3a9-4cd8-9765-55309d5e1d16",
"name": "upperNumber",
"valueType": "string",
"value": "+49-228-181-999"
}
]
}
],
"resourceSpecification":
{
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourcePoolSpecification"
},
"relatedParty":
[
{
"@type": "RelatedPartyRefOrPartyRoleRef",
"role": "Partner",
"partyOrPartyRole":
{
"@type": "PartyRef",
"@referredType": "Organization",
"id": "47abd723-d3ca-49d8-ba53-76aa62e867e9",
"href": "https://{server}:{port}/tmf-
api/partyManagement/v5/organization/47abd723-d3ca-49d8-ba53-76aa62e867e9",
"name": "MyPartner"
}
}
]
}

Response

201

{
"@type": "ResourcePool",

© TM Forum 2024. All Rights Reserved. Page 120


Resource Pool Management User Guide

"id": "c3fef858-b864-4fac-971e-795b1195ded9",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-795b1195ded9",
"name": "Phone Number block for partner MyPartner",
"description": "This Pool collects the PhoneNumber resources assigned to the
partner MyPartner.",
"pooledResourceSpecification":
{
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification",
"id": "89afac38-32e2-40f8-8be2-7b86dd03c9c9",
"href": "https://{server}:{port}/tmf-
api/resourceCatalogManagement/v5/resourceSpecification/89afac38-32e2-40f8-8be2-
7b86dd03c9c9",
"name": "Phone Number"
},
"resourceCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "cc",
"valueType": "string",
"value": "49"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "ndc",
"valueType": "string",
"value": "228"
}
],
"capacity":
[
{
"@type": "Capacity",
"id": "cf8d1665-a3cc-470c-97eb-782f226075ce",
"href": "https://{server}:{port}/tmf-
api/resourcePool/v5/capacity/cf8d1665-a3cc-470c-97eb-782f226075ce",
"name": "Capacity of Phone Number pool for MyPartner",
"capacitySpecification": {
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification"
},
"capacityStatus": "actual",
"capacityAmount":
{
"amount": 1000,
"units": "number"
},
"capacityCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "lowerNumber",
"valueType": "string",
"value": "+49-228-181-000"
© TM Forum 2024. All Rights Reserved. Page 121
Resource Pool Management User Guide

},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "upperNumber",
"valueType": "string",
"value": "+49-228-181-999"
}
]
}
],
"resourceSpecification":
{
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourcePoolSpecification"
},
"relatedParty":
[
{
"@type": "RelatedPartyRefOrPartyRoleRef",
"role": "Partner",
"partyOrPartyRole":
{
"@type": "PartyRef",
"@referredType": "Organization",
"id": "47abd723-d3ca-49d8-ba53-76aa62e867e9",
"href": "https://{server}:{port}/tmf-
api/partyManagement/v5/organization/47abd723-d3ca-49d8-ba53-76aa62e867e9",
"name": "MyPartner"
}
}
]
}

Updates partially a ResourcePool


PATCH /resourcePool/{id}?fields=…

Description

This operation allows partial updates of a ResourcePool entity. Support of json/merge


(https://tools.ietf.org/html/rfc7396) 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.

Patchable and Non Patchable Attributes

Non Patchable Attributes Rule


href
id

© TM Forum 2024. All Rights Reserved. Page 122


Resource Pool Management User Guide

Non Patchable Attributes Rule


@baseType @baseType is immutable
@schemaLocation @schemaLocation is immutable
@type @type is immutable

Patchable Attributes Rule


activationFeature
administrativeState
attachment
capacity
category
description
endOperatingDate
externalIdentifier
intent
name
note
operationalState
place
pooledResource
pooledResourceSpecification
relatedParty
resourceCharacteristic
resourceOrderItem
resourceRelationship
resourceSpecification
resourceStatus
resourceVersion
startOperatingDate
supportingResource
usageState
validFor
value

Usage samples

Here is an example of a request for patching a ResourcePool using APPLICATION-JSON


© TM Forum 2024. All Rights Reserved. Page 123
Resource Pool Management User Guide

syntax.

Request

PATCH /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9
Content-Type: application/json

{
"@type": "ResourcePool",
"name": "Phone Number block for partner 'MyPartner'",
"description": "This Pool collects the PhoneNumber resources assigned to the
partner 'MyPartner'.",
"validFor":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}

Response

200

{
"@type": "ResourcePool",
"id": "c3fef858-b864-4fac-971e-795b1195ded9",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-795b1195ded9",
"name": "Phone Number block for partner 'MyPartner'",
"description": "This Pool collects the PhoneNumber resources assigned to the
partner 'MyPartner'.",
"pooledResourceSpecification":
{
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification",
"id": "89afac38-32e2-40f8-8be2-7b86dd03c9c9",
"href": "https://{server}:{port}/tmf-
api/resourceCatalogManagement/v5/resourceSpecification/89afac38-32e2-40f8-8be2-
7b86dd03c9c9",
"name": "Phone Number"
},
"resourceCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "cc",
"valueType": "string",
"value": "49"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "ndc",
"valueType": "string",
"value": "228"
}
],
"capacity":
© TM Forum 2024. All Rights Reserved. Page 124
Resource Pool Management User Guide

[
{
"@type": "Capacity",
"id": "cf8d1665-a3cc-470c-97eb-782f226075ce",
"href": "https://{server}:{port}/tmf-
api/resourcePool/v5/capacity/cf8d1665-a3cc-470c-97eb-782f226075ce",
"name": "Capacity of Phone Number pool for MyPartner",
"capacitySpecification": {
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification"
},
"capacityStatus": "actual",
"capacityAmount":
{
"amount": 1000,
"units": "number"
},
"capacityCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "lowerNumber",
"valueType": "string",
"value": "+49-228-181-000"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "upperNumber",
"valueType": "string",
"value": "+49-228-181-999"
}
]
}
],
"resourceSpecification":
{
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourcePoolSpecification"
},
"relatedParty":
[
{
"@type": "RelatedPartyRefOrPartyRoleRef",
"role": "Partner",
"partyOrPartyRole":
{
"@type": "PartyRef",
"@referredType": "Organization",
"id": "47abd723-d3ca-49d8-ba53-76aa62e867e9",
"href": "https://{server}:{port}/tmf-
api/partyManagement/v5/organization/47abd723-d3ca-49d8-ba53-76aa62e867e9",
"name": "MyPartner"
}
© TM Forum 2024. All Rights Reserved. Page 125
Resource Pool Management User Guide

}
],
"validFor":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}

Here is an example of a request for patching a ResourcePool using MERGE syntax.

Request

PATCH /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9
Content-Type: application/merge-patch+json

{
"@type": "ResourcePool",
"name": "Phone Number block for partner 'MyPartner'",
"description": "This Pool collects the PhoneNumber resources assigned to the
partner 'MyPartner'.",
"validFor":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}

Response

200

{
"@type": "ResourcePool",
"id": "c3fef858-b864-4fac-971e-795b1195ded9",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-795b1195ded9",
"name": "Phone Number block for partner 'MyPartner'",
"description": "This Pool collects the PhoneNumber resources assigned to the
partner 'MyPartner'.",
"pooledResourceSpecification":
{
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification",
"id": "89afac38-32e2-40f8-8be2-7b86dd03c9c9",
"href": "https://{server}:{port}/tmf-
api/resourceCatalogManagement/v5/resourceSpecification/89afac38-32e2-40f8-8be2-
7b86dd03c9c9",
"name": "Phone Number"
},
"resourceCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "cc",
"valueType": "string",

© TM Forum 2024. All Rights Reserved. Page 126


Resource Pool Management User Guide

"value": "49"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "ndc",
"valueType": "string",
"value": "228"
}
],
"capacity":
[
{
"@type": "Capacity",
"id": "cf8d1665-a3cc-470c-97eb-782f226075ce",
"href": "https://{server}:{port}/tmf-
api/resourcePool/v5/capacity/cf8d1665-a3cc-470c-97eb-782f226075ce",
"name": "Capacity of Phone Number pool for MyPartner",
"capacitySpecification": {
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification"
},
"capacityStatus": "actual",
"capacityAmount":
{
"amount": 1000,
"units": "number"
},
"capacityCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "lowerNumber",
"valueType": "string",
"value": "+49-228-181-000"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "upperNumber",
"valueType": "string",
"value": "+49-228-181-999"
}
]
}
],
"resourceSpecification":
{
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourcePoolSpecification"
},
"relatedParty":
[
{
© TM Forum 2024. All Rights Reserved. Page 127
Resource Pool Management User Guide

"@type": "RelatedPartyRefOrPartyRoleRef",
"role": "Partner",
"partyOrPartyRole":
{
"@type": "PartyRef",
"@referredType": "Organization",
"id": "47abd723-d3ca-49d8-ba53-76aa62e867e9",
"href": "https://{server}:{port}/tmf-
api/partyManagement/v5/organization/47abd723-d3ca-49d8-ba53-76aa62e867e9",
"name": "MyPartner"
}
}
],
"validFor":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}

Here is an example of a request for patching a ResourcePool using JSON-PATCH syntax.

Request

PATCH /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9
Content-Type: application/json-patch+json

[
{
"op": "add",
"path": "/resourceCharacteristic",
"value":
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "sn",
"valueType": "string",
"value": "181"
}
}
]

Response

200

{
"@type": "ResourcePool",
"id": "c3fef858-b864-4fac-971e-795b1195ded9",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-795b1195ded9",
"name": "Phone Number block for partner MyPartner",
"description": "This Pool collects the PhoneNumber resources assigned to the
partner MyPartner.",
"pooledResourceSpecification":
{
"@type": "ResourceSpecificationRef",

© TM Forum 2024. All Rights Reserved. Page 128


Resource Pool Management User Guide

"@referredType": "ResourceSpecification",
"id": "89afac38-32e2-40f8-8be2-7b86dd03c9c9",
"href": "https://{server}:{port}/tmf-
api/resourceCatalogManagement/v5/resourceSpecification/89afac38-32e2-40f8-8be2-
7b86dd03c9c9",
"name": "Phone Number"
},
"resourceCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "cc",
"valueType": "string",
"value": "49"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "ndc",
"valueType": "string",
"value": "228"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "sn",
"valueType": "string",
"value": "181"
}
],
"capacity":
[
{
"@type": "Capacity",
"id": "cf8d1665-a3cc-470c-97eb-782f226075ce",
"href": "https://{server}:{port}/tmf-
api/resourcePool/v5/capacity/cf8d1665-a3cc-470c-97eb-782f226075ce",
"name": "Capacity of Phone Number pool for MyPartner",
"capacitySpecification": {
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification"
},
"capacityStatus": "actual",
"capacityAmount":
{
"amount": 1000,
"units": "number"
},
"capacityCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "lowerNumber",
"valueType": "string",
"value": "+49-228-181-000"
},
{
© TM Forum 2024. All Rights Reserved. Page 129
Resource Pool Management User Guide

"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "upperNumber",
"valueType": "string",
"value": "+49-228-181-999"
}
]
}
],
"resourceSpecification":
{
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourcePoolSpecification"
},
"relatedParty":
[
{
"@type": "RelatedPartyRefOrPartyRoleRef",
"role": "Partner",
"partyOrPartyRole":
{
"@type": "PartyRef",
"@referredType": "Organization",
"id": "47abd723-d3ca-49d8-ba53-76aa62e867e9",
"href": "https://{server}:{port}/tmf-
api/partyManagement/v5/organization/47abd723-d3ca-49d8-ba53-76aa62e867e9",
"name": "MyPartner"
}
}
]
}

Here is an example of a request for patching a ResourcePool using JSON-PATCH-QUERY


syntax.

Request

PATCH /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9
Content-Type: application/json-patch-query+json

[
{
"op": "replace",
"path": "/name",
"value": "Phone Number block for partner 'MyPartner'"
},
{
"op": "replace",
"path": "/description",
"value": "This Pool collects the PhoneNumber resources assigned to the
partner 'MyPartner'."
},
{
"op": "add",
"path": "/validFor",
© TM Forum 2024. All Rights Reserved. Page 130
Resource Pool Management User Guide

"value":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
},
{
"op": "replace",
"path": "$.relatedParty[?(@.partyOrPartyRole.name == 'MyPartner')].role",
"value": "Business Customer"
}
]

Response

200

{
"@type": "ResourcePool",
"id": "c3fef858-b864-4fac-971e-795b1195ded9",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-795b1195ded9",
"name": "Phone Number block for partner 'MyPartner'",
"description": "This Pool collects the PhoneNumber resources assigned to the
partner 'MyPartner'.",
"pooledResourceSpecification":
{
"@type": "ResourceSpecificationRef",
"@referredType": "ResourceSpecification",
"id": "89afac38-32e2-40f8-8be2-7b86dd03c9c9",
"href": "https://{server}:{port}/tmf-
api/resourceCatalogManagement/v5/resourceSpecification/89afac38-32e2-40f8-8be2-
7b86dd03c9c9",
"name": "Phone Number"
},
"resourceCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "cc",
"valueType": "string",
"value": "49"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "ndc",
"valueType": "string",
"value": "228"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "sn",
"valueType": "string",
"value": "181"
}
],
"capacity":

© TM Forum 2024. All Rights Reserved. Page 131


Resource Pool Management User Guide

[
{
"@type": "Capacity",
"id": "cf8d1665-a3cc-470c-97eb-782f226075ce",
"href": "https://{server}:{port}/tmf-
api/resourcePool/v5/capacity/cf8d1665-a3cc-470c-97eb-782f226075ce",
"name": "Capacity of Phone Number pool for MyPartner",
"capacitySpecification": {
"id": "3d01344d-4409-4b15-8fcb-b8802314ff9c",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/capacitySpecification/3d01344d-4409-4b15-8fcb-
b8802314ff9c",
"@type": "CapacitySpecificationRef",
"@referredType": "CapacitySpecification"
},
"capacityStatus": "actual",
"capacityAmount":
{
"amount": 1000,
"units": "number"
},
"capacityCharacteristic":
[
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "lowerNumber",
"valueType": "string",
"value": "+49-228-181-000"
},
{
"@type": "StringCharacteristic",
"@baseType": "Characteristic",
"name": "upperNumber",
"valueType": "string",
"value": "+49-228-181-999"
}
]
}
],
"resourceSpecification":
{
"id": "b0e0827c-5693-4e41-8445-22438abb33cb",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePoolSpecification/b0e0827c-5693-4e41-8445-
22438abb33cb",
"@type": "ResourceSpecificationRef",
"@referredType": "ResourcePoolSpecification"
},
"relatedParty":
[
{
"@type": "RelatedPartyRefOrPartyRoleRef",
"role": "Business Customer",
"partyOrPartyRole":
{
"@type": "PartyRef",
"@referredType": "Organization",
"id": "47abd723-d3ca-49d8-ba53-76aa62e867e9",
"href": "https://{server}:{port}/tmf-
api/partyManagement/v5/organization/47abd723-d3ca-49d8-ba53-76aa62e867e9",
"name": "MyPartner"
}
© TM Forum 2024. All Rights Reserved. Page 132
Resource Pool Management User Guide

}
],
"validFor":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}

Deletes a ResourcePool
DELETE /resourcePool/{id}

Description

This operation deletes a ResourcePool entity.

Operations on AvailabilityCheck

List or find AvailabilityCheck objects


GET /resourcePool/{resourcePoolId}/availabilityCheck?fields=…

Description

This operation list AvailabilityCheck entities. Attribute selection is enabled for all first level
attributes. Filtering may be available depending on the compliance level supported by an
implementation.

Usage samples

Here's an example of a request for retrieving AvailabilityCheck resources.

Request

GET /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9/availabilityCheck
Content-Type: application/json

Response

200

[
{
"@type": "AvailabilityCheck",
"id": "8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/availabilityCheck/8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"capacityDemand":
{
"@type": "Capacity",
"capacityAmount":

© TM Forum 2024. All Rights Reserved. Page 133


Resource Pool Management User Guide

{
"amount": 1,
"units": "number"
}
},
"state": "inProgress"
}
]

Retrieves a AvailabilityCheck by ID
GET /resourcePool/{resourcePoolId}/availabilityCheck/{id}?fields=…

Description

This operation retrieves an AvailabilityCheck entity. Attribute selection is enabled for all first
level attributes. Filtering may be available depending on the compliance level supported by
an implementation.

Usage samples

Here's an example of a request for retrieving a AvailabilityCheck resource

Request

GET /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9/availabilityCheck/8cb645cb-
279f-42f4-9d3b-72845bbfafbe
Content-Type: application/json

Response

200

{
"@type": "AvailabilityCheck",
"id": "8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/availabilityCheck/8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"capacityDemand":
{
"@type": "Capacity",
"capacityAmount":
{
"amount": 1,
"units": "number"
}
},
"state": "inProgress"
}

© TM Forum 2024. All Rights Reserved. Page 134


Resource Pool Management User Guide

Creates a AvailabilityCheck
POST /resourcePool/{resourcePoolId}/availabilityCheck?fields=…

Description

This operation creates an AvailabilityCheck entity.

Mandatory Attributes

Mandatory Attributes Rule


@type

Usage samples

Here's an example of a request for creating a AvailabilityCheck resources.

Request

POST /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9/availabilityCheck
Content-Type: application/json

{
"@type": "AvailabilityCheck",
"capacityDemand":
{
"@type": "Capacity",
"capacityAmount":
{
"amount": 1,
"units": "number"
}
}
}

Response

201

{
"@type": "AvailabilityCheck",
"id": "8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/availabilityCheck/8cb645cb-279f-42f4-9d3b-72845bbfafbe",
"capacityDemand":
{
"@type": "Capacity",
"capacityAmount":
{
"amount": 10,
"units": "number"
}
},
"capacityOption":

© TM Forum 2024. All Rights Reserved. Page 135


Resource Pool Management User Guide

[
{
"@type": "Capacity",
"capacityAmount":
{
"amount": 6,
"units": "number"
}
},
{
"@type": "Capacity",
"capacityAmount":
{
"amount": 4,
"units": "number"
}
}
],
"state": "inProgress"
}

Operations on Push

Retrieves a Push by ID
GET /resourcePool/{resourcePoolId}/push/{id}?fields=…

Description

This operation retrieves a Push entity. Attribute selection is enabled for all first level
attributes. Filtering may be available depending on the compliance level supported by an
implementation.

Usage samples

Here's an example of a request for retrieving a Push resource

Request

GET /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9/push/ae63d76e-6d00-45aa-97a6-
c8a2b54390e5
Content-Type: application/json

Response

200

{
"@type": "Push",
"id": "ae63d76e-6d00-45aa-97a6-c8a2b54390e5",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/push/ae63d76e-6d00-45aa-97a6-c8a2b54390e5",
"pushedResource":
[
© TM Forum 2024. All Rights Reserved. Page 136
Resource Pool Management User Guide

{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "4d179a07-1555-4e5f-a2de-0a51f5dd7e15",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/4d179a07-1555-4e5f-a2de-0a51f5dd7e15"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "15dfa8a7-f9db-43a8-8758-9d9df5a76264",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/15dfa8a7-f9db-43a8-8758-9d9df5a76264"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "195aa8ee-7560-4d97-9b9a-2add1a4e0372",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/195aa8ee-7560-4d97-9b9a-2add1a4e0372"
}
],
"state": "inProgress"
}

List or find Push objects


GET /resourcePool/{resourcePoolId}/push?fields=…

Description

This operation list Push entities. Attribute selection is enabled for all first level attributes.
Filtering may be available depending on the compliance level supported by an
implementation.

Usage samples

Here's an example of a request for retrieving Push resources.

Request

GET /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9/push
Content-Type: application/json

Response

200

[
{
"@type": "Push",
"id": "ae63d76e-6d00-45aa-97a6-c8a2b54390e5",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/push/ae63d76e-6d00-45aa-97a6-c8a2b54390e5",

© TM Forum 2024. All Rights Reserved. Page 137


Resource Pool Management User Guide

"pushedResource":
[
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "4d179a07-1555-4e5f-a2de-0a51f5dd7e15",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/4d179a07-1555-4e5f-a2de-0a51f5dd7e15"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "15dfa8a7-f9db-43a8-8758-9d9df5a76264",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/15dfa8a7-f9db-43a8-8758-9d9df5a76264"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "195aa8ee-7560-4d97-9b9a-2add1a4e0372",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/195aa8ee-7560-4d97-9b9a-2add1a4e0372"
}
],
"state": "inProgress"
}
]

Creates a Push
POST /resourcePool/{resourcePoolId}/push?fields=…

Description

This operation creates a Push entity.

Mandatory Attributes

Mandatory Attributes Rule


@type

Usage samples

Here's an example of a request for creating a Push resources.

Request

POST /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9/push
Content-Type: application/json

{
"@type": "Push",
"pushedResource":
[
{
"@type": "ResourceRef",

© TM Forum 2024. All Rights Reserved. Page 138


Resource Pool Management User Guide

"@referredType": "LogicalResource",
"id": "4d179a07-1555-4e5f-a2de-0a51f5dd7e15",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/4d179a07-1555-4e5f-a2de-0a51f5dd7e15"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "15dfa8a7-f9db-43a8-8758-9d9df5a76264",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/15dfa8a7-f9db-43a8-8758-9d9df5a76264"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "195aa8ee-7560-4d97-9b9a-2add1a4e0372",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/195aa8ee-7560-4d97-9b9a-2add1a4e0372"
}
]
}

Response

201

{
"@type": "Push",
"id": "ae63d76e-6d00-45aa-97a6-c8a2b54390e5",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/push/ae63d76e-6d00-45aa-97a6-c8a2b54390e5",
"pushedResource":
[
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "4d179a07-1555-4e5f-a2de-0a51f5dd7e15",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/4d179a07-1555-4e5f-a2de-0a51f5dd7e15"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "15dfa8a7-f9db-43a8-8758-9d9df5a76264",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/15dfa8a7-f9db-43a8-8758-9d9df5a76264"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "195aa8ee-7560-4d97-9b9a-2add1a4e0372",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/195aa8ee-7560-4d97-9b9a-2add1a4e0372"
}
],
"state": "inProgress"
}

© TM Forum 2024. All Rights Reserved. Page 139


Resource Pool Management User Guide

Operations on Extract

Retrieves a Extract by ID
GET /resourcePool/{resourcePoolId}/extract/{id}?fields=…

Description

This operation retrieves an Extract entity. Attribute selection is enabled for all first level
attributes. Filtering may be available depending on the compliance level supported by an
implementation.

Usage samples

Here's an example of a request for retrieving a Extract resource

Request

GET /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9/extract/c6a1e831-ef5b-4d09-
85a8-594fca73313b
Content-Type: application/json

Response

200

{
"@type": "Extract",
"id": "c6a1e831-ef5b-4d09-85a8-594fca73313b",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/extract/c6a1e831-ef5b-4d09-85a8-594fca73313b",
"capacityDemand":
{
"@type": "Capacity",
"capacityAmount":
{
"amount": 2,
"units": "number"
},
"capacityStatus": "planned",
"applicableTimePeriod":
[
{
"@type": "ApplicableTimePeriod",
"fromToDateTime":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}
]
},
"state": "inProgress"
}

© TM Forum 2024. All Rights Reserved. Page 140


Resource Pool Management User Guide

List or find Extract objects


GET /resourcePool/{resourcePoolId}/extract?fields=…

Description

This operation list Extract entities. Attribute selection is enabled for all first level attributes.
Filtering may be available depending on the compliance level supported by an
implementation.

Usage samples

Here's an example of a request for retrieving Extract resources.

Request

GET /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9/extract
Content-Type: application/json

Response

200

[
{
"@type": "Extract",
"id": "c6a1e831-ef5b-4d09-85a8-594fca73313b",
"href": "https://{server}:{port}/tmf-
api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/extract/c6a1e831-ef5b-4d09-85a8-594fca73313b",
"capacityDemand":
{
"@type": "Capacity",
"capacityAmount":
{
"amount": 2,
"units": "number"
},
"capacityStatus": "planned",
"applicableTimePeriod":
[
{
"@type": "ApplicableTimePeriod",
"fromToDateTime":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}
]
},
"state": "inProgress"
}
]

© TM Forum 2024. All Rights Reserved. Page 141


Resource Pool Management User Guide

Creates a Extract
POST /resourcePool/{resourcePoolId}/extract?fields=…

Description

This operation creates an Extract entity.

Mandatory Attributes

Mandatory Attributes Rule


@type

Usage samples

Here's an example of a request for creating a Extract resources.

Request

POST /resourcePool/c3fef858-b864-4fac-971e-795b1195ded9/extract
Content-Type: application/json

{
"@type": "Extract",
"capacityDemand":
{
"@type": "Capacity",
"capacityAmount":
{
"amount": 2,
"units": "number"
},
"capacityStatus": "planned",
"applicableTimePeriod":
[
{
"@type": "ApplicableTimePeriod",
"fromToDateTime":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}
]
}
}

Response

201

{
"@type": "Extract",
"id": "c6a1e831-ef5b-4d09-85a8-594fca73313b",
"href": "https://{server}:{port}/tmf-

© TM Forum 2024. All Rights Reserved. Page 142


Resource Pool Management User Guide

api/resourcePoolManagement/v5/resourcePool/c3fef858-b864-4fac-971e-
795b1195ded9/extract/c6a1e831-ef5b-4d09-85a8-594fca73313b",
"capacityDemand":
{
"@type": "Capacity",
"capacityAmount":
{
"amount": 2,
"units": "number"
},
"capacityStatus": "planned",
"applicableTimePeriod":
[
{
"@type": "ApplicableTimePeriod",
"fromToDateTime":
{
"startDateTime": "2024-05-13T00:00:00Z",
"endDateTime": "2024-09-20T00:00:00Z"
}
}
]
},
"extractedResource":
[
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "4d179a07-1555-4e5f-a2de-0a51f5dd7e15",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/4d179a07-1555-4e5f-a2de-0a51f5dd7e15"
},
{
"@type": "ResourceRef",
"@referredType": "LogicalResource",
"id": "15dfa8a7-f9db-43a8-8758-9d9df5a76264",
"href": "https://{server}:{port}/tmf-
api/resourceInventoryManagement/v5/resource/15dfa8a7-f9db-43a8-8758-9d9df5a76264"
}
],
"state": "inProgress"
}

© TM Forum 2024. All Rights Reserved. Page 143


Resource Pool Management User Guide

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

Returns HTTP/1.1 status code 204 if the request was successful.

Returns HTTP/1.1 status code 409 if request is not successful.

Usage Samples

Here’s an example of a request for registering a listener.

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":""
}

© TM Forum 2024. All Rights Reserved. Page 144


Resource Pool Management User Guide

Unregister listener
DELETE /hub/{id}

Description

Clears the communication endpoint address that was set by creating the Hub..

Behavior

Returns HTTP/1.1 status code 204 if the request was successful.

Returns HTTP/1.1 status code 404 if the resource is not found.

Usage Samples

Here’s an example of a request for un-registering a listener.

Request

DELETE /api/hub/42

Accept: application/json

Response

204

Publish Event to listener


POST /client/listener

Description

Clears the communication endpoint address that was set by creating the Hub.

Provides to a registered listener the description of the event that was raised. The
/client/listener url is the callback url passed when registering the listener.

Behavior

Returns HTTP/1.1 status code 201 if the service is able to set the configuration.

Usage Samples

Here’s an example of a notification received by the listener. In this example “EVENT TYPE”
should be replaced by one of the notification types supported by this API (see Notification
resources Models section) and EVENT BODY refers to the data structure of the given
notification type.

Request
© TM Forum 2024. All Rights Reserved. Page 145
Resource Pool Management User Guide

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.

© TM Forum 2024. All Rights Reserved. Page 146


Resource Pool Management User Guide

Acknowledgements
Release History
Release Date Release led by: Description
Number
Release June 2018 sousuke izumida Initial Release
18.0.0
[email protected]
.jp
Version 5.0.0 September Lutz Bettge Upgrade to V5 design patterns and
2023 OAS3
Deutsche Telekom

[email protected]

Contributors to Document
Lutz Bettge Deutsche Telekom

© TM Forum 2024. All Rights Reserved. Page 147

You might also like