Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Hide If
special@authenticated
Note
titleTo access this API specification you wil need to be logged in

To login with your TM Forum account please click on the Login button below

Button Hyperlink
titleLogin
typeprimary
urlhttps://projects.tmforum.org/wiki/login.action?os_destination=%2Fdisplay%2FAPI%2FOpen%2BAPI%2BTable

Don't have an account? You can register by clicking here:

Button Hyperlink
titleRegister
typeprimary
urlhttps://www.tmforum.org/user-registration/
targettrue

Show If
special@authenticated

Product Lifecycle Management STATE MODEL

Product Lifecycle Management (PLM) is responsible for managing the entire lifecycle of the catalog element and its underlying components. This include all of the processes required to design, build, deploy, maintain and ultimately retire the catalog element.
Image Modified
When the macro conception of a catalog element is started the first status of the later is "In Study".
When the conception of the catalog element is accepted its status is changed to "In Design".
If the design is approved its status is changed to "In Test".
Then either the test is OK and then its status is changed to "Active" or the test is KO and its status is changed to "Rejected". The Rejected status is a final status.
When a catalog element is in an "Active" status it means it has been validated and tested, but it is still not available for customers.
When the beginning of marketing is reached, its status is changed to "Launched". At this moment customers can buy it.
If the catalog element is not launched, its status is changed to "Retired".
The same status is achieved when a catalog element reaches the end of marketing.
The "Retired" status means it can not be sold to any new customers, but previous customers can still have it.
When no more customer holds the catalog element, its status is changed to "Obsolete" meaning it can be removed from the catalog.

Catalog RESOURCE

The root entity for catalog management.
A Product Catalog is a collection of Product Offerings, intended for a specific DistributionChannel, enhanced with additional information such as SLA parameters, invoicing and shipping details. Each Product Offering in a Product Catalog combines pricing and availability information with Product Specifications that describe the relationships between Products, the Services used to realize the Products, and the Resources they require.
Below is a representation of the Catalog resource in JSON format.

{
"id": "10",
"href": "http://serverlocation:port/catalogManagement/catalog/10",
"version": "2.0",
"lastUpdate": "2013-04-19T16:42:23.0Z",
"type": "Product Catalog",
"category":
[
{
"id": "12",
"href": "http://serverlocation:port/catalogManagement/category/12",
"version": "2.0",
"name": "Cloud offerings"
}
],

"name": "Catalog Wholesale Business",
"lifecycleStatus": "Active",
"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z",
"endDateTime": "2013-06-19T00:00:00.0Z"
},

"relatedParty":
[
{
"id": "1234",
"href": "http://serverLocation:port/partyManagement/partyRole/1234",
"role": "Owner"
},

{
"role": "Reviser",
"name": "Roger Collins"
}
]
}

 


Field Descriptions :
Catalog: Is a collection of Product Offerings, intended for a specific DistributionChannel, enhanced with additional information such as SLA parameters, invoicing and shipping details.

Field

Description

category

Reference to the category

href

Reference of the catalog

id

Unique identifier of the catalog

lastUpdate

Date and time of the last update

lifecycleStatus

Used to indicate the current lifecycle status

name

Name of the catalog

type

Indicates if the catalog is a product, service or resource catalog

validFor

The period for which the catalog is valid

version

Catalog version


Category: is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.

Field

Description

description

Description of the category

href

Reference of the catalog

id

Unique identifier of the category

isRoot

If true, this Boolean indicates that the category is a root of categories

lastUpdate

Date and time of the last update

lifecycleStatus

Used to indicate the current lifecycle status

name

Name of the category

parentId

Unique identifier of the parent category

validFor

The period for which the category is valid

version

Category version


RelatedParty: Defines party or partyRole linked to a specific entity.

Field

Description

id

Unique identifier of related party

href

Reference of the relatedParty, could be a party reference or a partyRole reference

name

Name of the related party

role

Role of the related party

validFor

The period for which the related party is linked to the entity


UML model:
Image Modified

Category RESOURCE

The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.
Resource IDs for categories are strings and are defined by the catalog application.
Below is a representation of the Category resource in JSON format.

{
"id": "42",
"href": "http://serverlocation:port/catalogManagement/category/42",
"lastUpdate": "2013-04-19T16:42:23.0Z",
"version": "2.0",
"lifecycleStatus": "Active",
"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z"
},
"parentId": "41",
"isRoot": false,
"name": "Cloud Services",
"description": "A category to hold all available cloud service offers"
}
Or for a root category (e.g. no parent)
{
"id": "42",
"href": "http://serverlocation:port/catalogManagement/category/42",
"lastUpdate": "2013-04-19T16:42:23.0Z",
"version": "2.0",
"lifecycleStatus": "Active",
"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z"
},
"parentId": "41",
"isRoot": true,
"name": "Cloud Services",
"description": "A category to hold all available cloud service offers"
}


Field Descriptions :
Category: is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.

Field

Description

description

Description of the category

href

Reference of the catalog

id

Unique identifier of the category

isRoot

If true, this Boolean indicates that the category is a root of categories

lastUpdate

Date and time of the last update

lifecycleStatus

Used to indicate the current lifecycle status

name

Name of the category

parentId

Unique identifier of the parent category

validFor

The period for which the category is valid

version

Category version


UML model:
Image Modified

Product Offering RESOURCE

The Product Offering resource represents entities that are orderable from the provider of the catalog, this resource includes pricing information.
Note: isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true).
If false, then a productSpecification will be returned, but the bundledProductOfferings will be absent or empty and vice-versa if isBundle is true.
Below is a representation of the ProductOffering resource in JSON format.

{
"id": "42",
"href": "http://serverlocation:port/productCatalogManagement/productOffering/42",
"version": "12.0",
"lastUpdate": "2013-04-19T16:42:23.0Z",
"name": "Virtual Storage Medium",
"description": "Virtual Storage Medium",
"isBundle": true,
"lifecycleStatus": "Active",
"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z",
"endDateTime": "2013-06-19T00:00:00.0Z"
},

"category":
[
{
"id": "12",
"href": "http://serverlocation:port/catalogManagement/category/12",
"version": "2.0",
"name": "Cloud offerings"
}
],

"channel":
[
{
"id": "13",
"href": "http://serverlocation:port/marketSales/channel/13",
"name": "Online Channel"
}
],

"place":
[
{
"id": "12",
"href": "http://serverlocation:port/marketSales/place/12",
"name": "France"
}
],

"bundledProductOffering":
[
{
"id": "15",
"href": "http://serverlocation:port/productCatalogManagement/productOffering/15",
"lifecycleStatus": "Active",
"name": "Offering 15"
},

{
"id": "64",
"href": "http://serverlocation:port/productCatalogManagement/productOffering/64",
"lifecycleStatus": "Active",
"name": "Offering 64"
}
],

"serviceLevelAgreement":
{
"id": "28",
"href": "http://serverlocation:port/slaManagement/serviceLevelAgreement/28",
"name": "Standard SLA"
},

"productSpecification":
{
"id": "13",
"href": "http://serverlocation:port/productCatalogManagement/productSpecification/13",
"version": "2.0",
"name": "specification product 1"
},

"serviceCandidate":
{
"id": "13",
"href": "http://serverlocation:port/serviceCatalogManagement/serviceCandidate/13",
"version": "2.0",
"name": "specification service 1"
},

"resourceCandidate":
{
"id": "13",
"href": "http://serverlocation:port/resourceCatalogManagement/resourceCandidate/13",
"version": "2.0",
"name": "specification resource 1"
},

"productOfferingTerm":
[
{
"name": "12 Month",
"description": "12 month contract",
"duration": "12",
"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z",
"endDateTime": "2013-06-19T00:00:00.0Z"
}
}
],

"productOfferingPrice":
[
{

"name": "Monthly Price",
"description": "monthlyprice",
"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z",
"endDateTime": "2013-06-19T00:00:00.0Z"
},

"priceType": "recurring",
"unitOfMeasure": "",
"price":
{
"taxIncludedAmount": 12,
"dutyFreeAmount": 10,
"taxRate": 20,
"currencyCode": "EUR",
"percentage": 0
},

"recurringChargePeriod": "monthly"
},

{

"name": "Usage Price",
"description": "usageprice",
"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z",
"endDateTime": "2013-06-19T00:00:00.0Z"
},

"priceType": "usage",
"unitOfMeasure": "second",
"price":
{
"taxIncludedAmount": 12,
"dutyFreeAmount": 10,
"taxRate": 20,
"currencyCode": "EUR",
"percentage": 0
},

"recurringChargePeriod": "",
"productOfferPriceAlteration":
{
"name": "Shipping Discount",
"description": "One time shipping discount",
"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z"
},

"priceType": "one timeOne Time",
"unitOfMeasure": "",
"price":
{
"percentage": 100
},

"recurringChargePeriod": "",
"priceCondition": "apply if total amount of the order is greater than 300.00"
}
}
]
}


Field Descriptions :
BundledProductOffering: A type of ProductOffering that belongs to a grouping of ProductOfferings made available to the market. It inherits of all attributes of ProductOffering.
Category: is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.

Field

Description

description

Description of the category

href

Reference of the catalog

id

Unique identifier of the category

isRoot

If true, this Boolean indicates that the category is a root of categories

lastUpdate

Date and time of the last update

lifecycleStatus

Used to indicate the current lifecycle status

name

Name of the category

parentId

Unique identifier of the parent category

validFor

The period for which the category is valid

version

Category version


Channel: Defines the channel for selling product offerings.

Field

Description

href

Reference of the channel

id

Unique identifier of the channel

name

Name of the channel


Place: Defines the places where the product offerings are sold.

Field

Description

href

Reference of the place

id

Unique identifier of the place

name

Name of the place


Price: Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for ProdOfferPriceAlteration.

Field

Description

currencyCode

A string used as a code for specifying the currency associated to the given amounts. The ISO4217 norm uses 3 letters to define the currency (for example USD for US dollar or EUR for Euro)

dutyFreeAmount

All taxes excluded amount (expressed in the given currency)

percentage

Percentage to apply for ProdOfferPriceAlteration

taxIncludedAmount

All taxes included amount (expressed in the given currency)

priceType

Indicates the price type: recurring, one time, usage

taxRate

Tax rate


ProductOffering: Represents entities that are orderable from the provider of the catalog, this resource includes pricing information.

Field

Description

description

Description of the productOffering

href

Reference of the ProductOffering

id

Unique identifier of the productOffering

isBundle

isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true).

lastUpdate

Date and time of the last update

lifecycleStatus

Used to indicate the current lifecycle status

name

Name of the productOffering

validFor

The period for which the productOffering is valid

version

ProductOffering version


ProductOfferPriceAlteration: An amount, usually of money, that modifies a price charged for a productOffering.

Field

Description

applicationDuration

Duration during which the prodOfferPriceAlteration applies on the productOffering (for instance 2 months free of charge for the recurring charge)

description

Description of the prodOfferPriceAlteration

href

Reference of the prodOfferPriceAlteration

id

Unique identifier of the prodOfferPriceAlteration e

name

Name of the prodOfferPriceAlteration

priceCondition

Condition that triggers the price application

priceType

Indicates the price type: recurring, one time, usage

recurringChargePeriod

Could be month, week…

unitOfMeasure

Could be minutes, GB…

validFor

The period for which the prodOfferPriceAlteration is valid


ProductOfferingPrice: Is based on both the basic cost to develop and produce products and the enterprise's policy on revenue targets. This price may be further revised through discounting (prodOfferPriceAlteration). The price, applied for a productOffering may also be influenced by the productOfferingTerm, the customer selected – e.g. a productOffering can be offered with multiple terms, like commitment periods for the contract. The price may be influenced by this productOfferingTerm. A productOffering may be cheaper with a 24 month commitment than with a 12 month commitment.

Field

Description

description

Description of the productOfferingPrice

name

Name of the productOfferingPrice

priceType

Indicates the price type: recurring, one time, usage

recurringChargePeriod

Could be month, week…

unitOfMeasure

Could be minutes, GB…

validFor

The period for which the productOfferingPrice is valid

version

ProductOffering version


ProductOfferingTerm: A condition under which a ProductOffering is made available to Customers. For instance, a productOffering can be offered with multiple commitment periods.

Field

Description

description

Description of the productOfferingTerm

duration

Duration of the productOfferingTerm

name

Name of the productOfferingTerm

validFor

The period for which the productOfferingterm is valid


ProductSpecification: A detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.

Field

Description

brand

The manufacturer or trademark of the specification

description

A narrative that explains in detail what the product specification is

href

Reference of the product specification

id

Unique identifier of the product specification

isBundle

isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true).

lastUpdate

Date and time of the last update

lifecycleStatus

Used to indicate the current lifecycle status

name

Name of the product specification

productNumber

An identification number assigned to uniquely identify the specification

validFor

The period for which the product specification is valid

version

Product specification version


ServiceCandidate: Is an entity that makes a ServiceSpecification available to a catalog. A ServiceCandidate and its associated ServiceSpecification may be published - made visible - in any number of ServiceCatalogs, or in none. One ServiceSpecification can be composed of other ServiceSpecifications. The Service Candidate consists of a subset of ServiceSpecification characteristics to fulfill a product offering. These ServiceSpecifications may also be published.

Field

Description

description

A narrative that explains in detail what the service candidate is

href

Reference of the service candidate

id

Unique identifier of the service candidate

lastUpdate

Date and time of the last update

lifecycleStatus

Used to indicate the current lifecycle status

name

Name of the service candidate

validFor

The period for which the service candidate is valid

version

Service candidate version


ServiceLevelAgreement: A service level agreement (SLA) is a type of agreement that represents a formal negotiated agreement between two parties designed to create a common understanding about products, services, priorities, responsibilities, and so forth. The SLA is a set of appropriate procedures and targets formally or informally agreed between parties in order to achieve and maintain specified Quality of Service.

Field

Description

href

Reference of the service level agreement

id

Unique identifier of the service level agreement

name

Name of the service level agreement


ResourceCandidate: Is an entity that makes a ResourceSpecification available to a catalog. A ResourceCandidate and its associated ResourceSpecification may be published - made visible - in any number of ResourceCatalogs, or in none. One ResourceSpecification can be composed of other ResourceSpecifications. The ResourceCandidate consists of a subset of ResourceSpecification characteristics to fulfill a product offering. These ResourceSpecifications may also be published.

Field

Description

href

Reference of the resource candidate

id

Unique identifier of the resource candidate

name

Name of the resource candidate


UML model:

Product Specification RESOURCE

The ProductSpecification Resource is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.
Below is a representation of the ProductSpecification resource in JSON format.

{
"id": "22",
"href": "http://serverlocation:port/productCatalogManagement/productSpecification/22",
"productNumber": "I42-340-DX",
"version": "2.0",
"lastUpdate": "2013-04-19T16:42:23.0Z",
"name": "iPhone 42",
"description": "Siri works on this iPhone",
"isBundle": true,
"brand": "Apple",
"lifecycleStatus": "Active",
"validFor":
{
"startDateTime": "2013-06-19T00:00:00.0Z",
"endDateTime": "2013-04-19T16:42:23.0Z"
},

"relatedParty":
[
{

"id": "1234",
"href": "http ://serverLocation:port/partyManagement/partyRole/1234",
"role": "Owner"
}
],

"attachment":
[
{

"id": "22",
"href": "http://serverlocation:port/documentManagement/attachment/22",
"type": "Picture",
"url": "http://xxxxx"
}
],

"bundledProductSpecification":
[
{
"id": "15",
"href": "http://serverlocation:port/productCatalogManagement/productSpecification/15",
"lifecycleStatus": "Active",
"name": "Product specification 15"
},

{

"id": "64",
"href": "http://serverlocation:port/productCatalogManagement/productSpecification/64",
"lifecycleStatus": "Active",
"name": "Product specification 64"
}
],

"productSpecificationRelationship":
[
{

"id": "23",
"href": "http://serverlocation:port/productCatalogManagement/productSpecification/23",
"type": "dependency",
"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z"
}
}
],

"serviceSpecification":
[
{
"id": "13",
"href": "http://serverlocation:port/serviceCatalogManagement/serviceSpecification/13",
"name": "specification 13",
"version": "1.1"
}
],

"resourceSpecification":
[
{
"id": "13",
"href": "http://serverlocation:port/resourceCatalogManagement/resourceSpecification/13",
"name": "specification 13",
"version": "1.1"
}
],

"productSpecCharacteristic":
[
{
"name": "Screen Size",
"description": "Screen size",
"valueType": "number",
"configurable": false,
"productSpecCharacteristicValue":
[
{
"valueType": "number",
"default": true,
"value": "4.2",
"unitOfMeasure": "inches",
"valueFrom": "",
"valueTo": "",
"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z"
}
}
],

"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z"
}
},

{
"name": "Colour",
"description": "Colour",
"valueType": "string",
"configurable": true,
"ProductSpecCharacteristicValue":
[
{
"valueType": "string",
"default": true,
"value": "Black",
"unitOfMeasure": "",
"valueFrom": "",
"valueTo": "",
"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z"
}
},

{
"valueType": "string",
"default": false,
"value": "White",
"unitOfMeasure": "",
"valueFrom": "",
"valueTo": "",
"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z"
}
}
],

"validFor":
{
"startDateTime": "2013-04-19T16:42:23.0Z"
}
}
]
}


Field Descriptions :
Attachment: describes a product through video, pictures...

Field

Description

href

Reference of the attachment

id

Unique identifier of the attachment

type

Attachment type such as video, picture

url

Uniform Resource Locator, is a web page address (a subset of URI)


BundledProductSpecification: A type of ProductSpecification that belongs to a grouping of ProductSpecifications made available to the market. It inherits of all attributes of ProductSpecification.
ProductSpecification: is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.

Field

Description

brand

The manufacturer or trademark of the specification

description

A narrative that explains in detail what the product specification is

href

Reference of the product specification

id

Unique identifier of the product specification

isBundle

isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true).

lastUpdate

Date and time of the last update

lifecycleStatus

Used to indicate the current lifecycle status

name

Name of the product specification

productNumber

An identification number assigned to uniquely identify the specification

validFor

The period for which the product specification is valid

version

Product specification version


ProductSpecCharacteristic: A characteristic quality or distinctive feature of a ProductSpecification. The characteristic can be take on a discrete value, such as color, can take on a range of values, (for example, sensitivity of 100-240 mV), or can be derived from a formula (for example, usage time (hrs) = 30 – talk time *3). Certain characteristics, such as color, may be configured during the ordering or some other process.

Field

Description

configurable

If true, the Boolean indicates that the productSpecCharacteristic is configurable

description

A narrative that explains in detail what the productSpecCharacteristic is

name

Name of the productSpecCharacteristic

valueType

A kind of value that the characteristic can take on, such as numeric, text and so forth

validFor

The period for which the productSpecCharacteristic is valid


ProductSpecCharacteristicValue: A number or text that can be assigned to a ProductSpecCharacteristic.

Field

Description

default

Indicates if the value is the default value for a characteristic

unitOfMeasure

Could be minutes, GB…

validFor

The period of time for which a value is applicable

value

A discrete value that the characteristic can take on

valueFrom

The low range value that a characteristic can take on

valueTo

The upper range value that a characteristic can take on

valueType

A kind of value that the characteristic can take on, such as numeric, text, and so forth


ProductSpecificationRelationship: A migration, substitution, dependency or exclusivity relationship between/among product specifications.

Field

Description

href

Reference of the productSpecification

validFor

The period for which the productSpecificationRelationship is valid

type

Type of relationship such as migration, substitution, dependency, exclusivity

id

Unique identifier of the productSpecification


RelatedParty: Defines party or partyRole linked to a specific entity.

FieldDescription

id

Unique identifier of related party

href

Reference of the relatedParty, could be a party reference or a partyRole reference

name

Name of the related party

role

Role of the related party

validFor

The period for which the related party is linked to the entity


ResourceSpecification: ResourceSpecification(s) required to realize a ProductSpecification.

Field

Description

href

Reference of the resource specification

id

Unique identifier of the resource specification

name

Name of the requiredResourceSpecification

version

Resource specification version


ServiceSpecification: ServiceSpecification(s) required to realize a ProductSpecification.

Field

Description

href

Reference of the serviceSpecification

id

Unique identifier of the service specification

name

Name of the requiredServiceSpecification

version

Service specification version


UML model:
Image Modified

Export Job Resource

An ExportJob resource represents a TASK used to export resources to a File
The ExportJob resource supports the following properties:

Attribute name

Description

query

Used to scope the exported data (identical to GET filter construct using target ID as base)
"query": "type=productOffering&version=2.0"

path

URL of the root resource acting as the source for streaming content to the file specified by the ExportJob
../partyManagement/individual

content-type

The format of the exported data .By default "application/json"

status

notstarted, running, succeeded, failed

url

URL of the File containing the data to be exported
a file URL, which is of the form

file://host/path


where host is the fully qualified domain name of the system on which the path is accessible, and path is a hierarchical directory path of the form directory/directory/.../name

completionDate

Date at which the Job was completed.

creationDate

Date at which the Job was created.

errorLog

Reason for Failure


JSON representation of an ExportJob

{
        "id": "54",
        "href": "http:/api/catalogManagement/exportJob/54",
        "status": "running",
        "path": "partyManagement/",
        "content-type": "application/json",
        "errorLog": "",
        "creationDate": "2013-04-19T16:42:23-04:00",
        "completionDate": "2013-04-21T16:42:23-04:00",
        "url": "ftp://ftp.myCatalog.com/party/54"
    }   

 

UML Model:
Image Modified

Import Job Resource

An ImportJob resource represent a TASK used to import resources from a File
The ImportJob resource supports the following properties:

Attribute name

Description

content-type

The format of the imported data. By default "application/json"

path

URL of the root resource where the content of the file specified by the ImportJob must be applied
../partyManagement/individual

status

notstarted, running, succeeded, failed

url

URL of the File containing the data to be imported
a file URL, which is of the form

file://host/path


where host is the fully qualified domain name of the system on which the path is accessible, and path is a hierarchical directory path of the form directory/directory/.../name

completionDate

Date at which the Job was completed.

creationDate

Date at which the Job was created.

errorLog

Reason for Failure if status is failed


JSON representation of an ImportJob

{
        "id": "54",
        "href": "http:/api/catalogManagement/importJob/54",
        "status": "completed",
        "path": "catalogManagement/",
        "content-type": "application/json",
        "errorLog": "",
        "creationDate": "2013-04-19T16:42:23-04:00",
        "completionDate": "2013-04-21T16:42:23-04:00",
        "url": "ftp://ftp.myCatalog.com/party/54"
    }   

 

UML Model:
Image Modified


© TM Forum 2015. All Rights Reserved

...